aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/Kconfig
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-11 22:56:33 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-11 22:56:33 -0500
commit74b84233458e9db7c160cec67638efdbec748ca9 (patch)
tree0d174c7386386dca17f494396d7febc300ffa3dd /arch/x86/Kconfig
parent507447473756e316f3f182324071389a51736a83 (diff)
parenta71c8bc5dfefbbf80ef90739791554ef7ea4401b (diff)
Merge branch 'x86-bsp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 BSP hotplug changes from Ingo Molnar: "This tree enables CPU#0 (the boot processor) to be onlined/offlined on x86, just like any other CPU. Enabled on Intel CPUs for now. Allowing this required the identification and fixing of latent CPU#0 assumptions (such as CPU#0 initializations, etc.) in the x86 architecture code, plus the identification of barriers to BSP-offlining, such as active PIC interrupts which can only be serviced on the BSP. It's behind a default-off option, and there's a debug option that allows the automatic testing of this feature. The motivation of this feature is to allow and prepare for true CPU-hotplug hardware support: recent changes to MCE support enable us to detect a deteriorating but not yet hard-failing L1/L2 cache on a CPU that could be soft-unplugged - or a failing L3 cache on a multi-socket system. Note that true hardware hot-plug is not yet fully enabled by this, because that requires a special platform wakeup sequence to be sent to the freshly powered up CPU#0. Future patches for this are planned, once such a platform exists. Chicken and egg" * 'x86-bsp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, topology: Debug CPU0 hotplug x86/i387.c: Initialize thread xstate only on CPU0 only once x86, hotplug: Handle retrigger irq by the first available CPU x86, hotplug: The first online processor saves the MTRR state x86, hotplug: During CPU0 online, enable x2apic, set_numa_node. x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI x86-32, hotplug: Add start_cpu0() entry point to head_32.S x86-64, hotplug: Add start_cpu0() entry point to head_64.S kernel/cpu.c: Add comment for priority in cpu_hotplug_pm_callback x86, hotplug, suspend: Online CPU0 for suspend or hibernate x86, hotplug: Support functions for CPU0 online/offline x86, topology: Don't offline CPU0 if any PIC irq can not be migrated out of it x86, Kconfig: Add config switch for CPU0 hotplug doc: Add x86 CPU0 online/offline feature
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r--arch/x86/Kconfig44
1 files changed, 44 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 6c304438b503..2d643255c40d 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1698,6 +1698,50 @@ config HOTPLUG_CPU
1698 automatically on SMP systems. ) 1698 automatically on SMP systems. )
1699 Say N if you want to disable CPU hotplug. 1699 Say N if you want to disable CPU hotplug.
1700 1700
1701config BOOTPARAM_HOTPLUG_CPU0
1702 bool "Set default setting of cpu0_hotpluggable"
1703 default n
1704 depends on HOTPLUG_CPU && EXPERIMENTAL
1705 ---help---
1706 Set whether default state of cpu0_hotpluggable is on or off.
1707
1708 Say Y here to enable CPU0 hotplug by default. If this switch
1709 is turned on, there is no need to give cpu0_hotplug kernel
1710 parameter and the CPU0 hotplug feature is enabled by default.
1711
1712 Please note: there are two known CPU0 dependencies if you want
1713 to enable the CPU0 hotplug feature either by this switch or by
1714 cpu0_hotplug kernel parameter.
1715
1716 First, resume from hibernate or suspend always starts from CPU0.
1717 So hibernate and suspend are prevented if CPU0 is offline.
1718
1719 Second dependency is PIC interrupts always go to CPU0. CPU0 can not
1720 offline if any interrupt can not migrate out of CPU0. There may
1721 be other CPU0 dependencies.
1722
1723 Please make sure the dependencies are under your control before
1724 you enable this feature.
1725
1726 Say N if you don't want to enable CPU0 hotplug feature by default.
1727 You still can enable the CPU0 hotplug feature at boot by kernel
1728 parameter cpu0_hotplug.
1729
1730config DEBUG_HOTPLUG_CPU0
1731 def_bool n
1732 prompt "Debug CPU0 hotplug"
1733 depends on HOTPLUG_CPU && EXPERIMENTAL
1734 ---help---
1735 Enabling this option offlines CPU0 (if CPU0 can be offlined) as
1736 soon as possible and boots up userspace with CPU0 offlined. User
1737 can online CPU0 back after boot time.
1738
1739 To debug CPU0 hotplug, you need to enable CPU0 offline/online
1740 feature by either turning on CONFIG_BOOTPARAM_HOTPLUG_CPU0 during
1741 compilation or giving cpu0_hotplug kernel parameter at boot.
1742
1743 If unsure, say N.
1744
1701config COMPAT_VDSO 1745config COMPAT_VDSO
1702 def_bool y 1746 def_bool y
1703 prompt "Compat VDSO support" 1747 prompt "Compat VDSO support"