]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/kexec: Fix orphaned offline CPUs across kexec
authorMatt Evans <matt@ozlabs.org>
Thu, 29 Jul 2010 18:49:08 +0000 (18:49 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sat, 31 Jul 2010 05:05:22 +0000 (15:05 +1000)
commitb062818ae783cd873e0e60cc2f9b5ee28df749af
tree053dc35d425029ea221abc32c0ac81f3512cd2b0
parent7699431fde36269912b28b6dca1d7dcc4c76955b
powerpc/kexec: Fix orphaned offline CPUs across kexec

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: Matt Evans <matt@ozlabs.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/machine_kexec_64.c