• Matt Evans's avatar
    powerpc/kexec: Fix orphaned offline CPUs across kexec · e8e5c215
    Matt Evans authored
    When CPU hotplug is used, some CPUs may be offline at the time a kexec is
    performed.  The subsequent kernel may expect these CPUs to be already running,
    and will declare them stuck.  On pseries, there's also a soft-offline (cede)
    state that CPUs may be in; this can also cause problems as the kexeced kernel
    may ask RTAS if they're online -- and RTAS would say they are.  The CPU will
    either appear stuck, or will cause a crash as we replace its cede loop beneath
    it.
    
    This patch kicks each present offline CPU awake before the kexec, so that
    none are forever lost to these assumptions in the subsequent kernel.
    
    Now, the behaviour is that all available CPUs that were offlined are now
    online & usable after the kexec.  This mimics the behaviour of a full reboot
    (on which all CPUs will be restarted).
    Signed-off-by: default avatarMatt Evans <matt@ozlabs.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    e8e5c215
machine_kexec_64.c 10.9 KB