From: Fenghua Yu
BSP or CPU0 has been the last obstacle to CPU hotplug on x86. This patch
implements BSP online and offline and removes this obstacle to CPU hotplug.
RAS needs the feature. If socket0 needs to be hotplugged for any reason
thread on socket0 is bad, shared cache issue, uncore issue, etc), CPU0 is
required to be offline or hot replaced to keep the system run.
v4: Add __read_mostly for bsp_hotpluggable variable. Add my email address
cpu-hotplug.txt document. A wording change in comment.
v3: Register a pm notifier to check if CPU0 is online before
Small wording changes in document and print info.
v2: Add locking changes between cpu hotplug and hibernate/suspend. Change
irq bound to CPU0 detection.
Fenghua Yu (7):
x86/topology.c: Support functions for BSP online/offline
x86/common.c: Init BSP data during BSP online
x86/mtrr/main.c: Ask the first online CPU to save mtrr
x86/smpboot.c: Don't offline BSP if any irq can not be migrated out
Documentations/cpu-hotplug.tx, kernel-parameters.txt: Add x86 CPU0
x86/i387.c: Thread xstate is initialized only on BSP once
x86/power/cpu.c: Don't hibernate/suspend if CPU0 is offline
Documentation/cpu-hotplug.txt | 19 +++++++++++++++
Documentation/kernel-parameters.txt | 13 ++++++++++
arch/x86/include/asm/processor.h | 1 +
arch/x86/kernel/cpu/common.c | 13 ++++++++--
arch/x86/kernel/cpu/mtrr/main.c | 9 +++++-
arch/x86/kernel/i387.c | 9 ++++++-
arch/x86/kernel/smpboot.c | 43
arch/x86/kernel/topology.c | 24 +++++++++++++-----
arch/x86/power/cpu.c | 44
9 files changed, 155 insertions(+), 20 deletions(-)