diff options
author | Fenghua Yu <fenghua.yu@intel.com> | 2012-11-14 04:36:53 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-11-14 15:28:03 -0800 |
commit | e1c467e69040c3be68959332959c07fb3d818e87 (patch) | |
tree | 8b26708bc23accd1ebfb6b7dcd08f69350f07a92 /arch/x86/include/asm/cpu.h | |
parent | 3e2a0cc3cdc19e0518ae87583add40ea1bf55b67 (diff) | |
download | linux-stable-e1c467e69040c3be68959332959c07fb3d818e87.tar.gz linux-stable-e1c467e69040c3be68959332959c07fb3d818e87.tar.bz2 linux-stable-e1c467e69040c3be68959332959c07fb3d818e87.zip |
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>
Diffstat (limited to 'arch/x86/include/asm/cpu.h')
-rw-r--r-- | arch/x86/include/asm/cpu.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h index 4564c8e28a33..a1195726e8c2 100644 --- a/arch/x86/include/asm/cpu.h +++ b/arch/x86/include/asm/cpu.h @@ -28,6 +28,7 @@ struct x86_cpu { #ifdef CONFIG_HOTPLUG_CPU extern int arch_register_cpu(int num); extern void arch_unregister_cpu(int); +extern void __cpuinit start_cpu0(void); #endif DECLARE_PER_CPU(int, cpu_state); |