x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI
authorFenghua Yu <fenghua.yu@intel.com>
Wed, 14 Nov 2012 12:36:53 +0000 (04:36 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 14 Nov 2012 23:28:03 +0000 (15:28 -0800)
commite1c467e69040c3be68959332959c07fb3d818e87
tree8b26708bc23accd1ebfb6b7dcd08f69350f07a92
parent3e2a0cc3cdc19e0518ae87583add40ea1bf55b67
x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI

Instead of waiting for STARTUP after INITs, BSP will execute the BIOS boot-strap
code which is not a desired behavior for waking up BSP. To avoid the boot-strap
code, wake up CPU0 by NMI instead.

This works to wake up soft offlined CPU0 only. If CPU0 is hard offlined (i.e.
physically hot removed and then hot added), NMI won't wake it up. We'll change
this code in the future to wake up hard offlined CPU0 if real platform and
request are available.

AP is still waken up as before by INIT, SIPI, SIPI sequence.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: http://lkml.kernel.org/r/1352896613-25957-1-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/cpu.h
arch/x86/kernel/smpboot.c