summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/Kconfig18
-rw-r--r--arch/x86/kernel/smpboot.c2
2 files changed, 19 insertions, 1 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index fc8351f374f..adaca6fa927 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1438,6 +1438,24 @@ config HOTPLUG_CPU
automatically on SMP systems. )
Say N if you want to disable CPU hotplug.
+config HOTPLUG_RESTRICT_TO_BOOTUP_CPUS
+ def_bool n
+ prompt "Restrict CPU hotplugging to processors found during boot" if HOTPLUG_CPU
+ ---help---
+ Say no here to use the default, which allows as many CPUs as are marked
+ "disabled" by ACPI or MPTABLES to be hotplugged after bootup.
+
+ Say yes if you do not want to allow CPUs to be added after booting, for
+ example if you only need CPU hotplugging enabled for suspend/resume.
+
+ If CPU_HOTPLUG is enabled this value may be overridden at boot time
+ with the "additional_cpus" kernel parameter.
+
+config HOTPLUG_ADDITIONAL_CPUS
+ int
+ default 0 if !HOTPLUG_CPU || HOTPLUG_RESTRICT_TO_BOOTUP_CPUS
+ default -1
+
config COMPAT_VDSO
def_bool y
prompt "Compat VDSO support"
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 23913785c26..857a88bb919 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1261,7 +1261,7 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
check_nmi_watchdog();
}
-static int additional_cpus __initdata = -1;
+static int additional_cpus __initdata = CONFIG_HOTPLUG_ADDITIONAL_CPUS;
/*
* cpu_possible_map should be static, it cannot change as cpu's