aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorChuck Ebbert <cebbert@redhat.com>2008-10-02 15:30:07 -0400
committerIngo Molnar <mingo@elte.hu>2008-10-13 04:33:14 -0400
commit7f2f49a58283110083a7358d2d98025a11653373 (patch)
tree1a3a6d0c40ebf8f0c271269ee1845956dec5978f /arch
parent94f6bac1058fd59a8bd472d18c4b77f220d930b0 (diff)
x86: allow number of additional hotplug CPUs to be set at compile time, V2
x86: allow number of additional hotplug CPUs to be set at compile time, V2 The default number of additional CPU IDs for hotplugging is determined by asking ACPI or mptables how many "disabled" CPUs there are in the system, but many systems get this wrong so that e.g. a uniprocessor machine gets an extra CPU allocated and never switches to single CPU mode. And sometimes CPU hotplugging is enabled only for suspend/hibernate anyway, so the additional CPU IDs are not wanted. Allow the number to be set to zero at compile time. Also, force the number of extra CPUs to zero if hotplugging is disabled which allows removing some conditional code. Tested on uniprocessor x86_64 that ACPI claims has a disabled processor, with CPU hotplugging configured. ("After" has the number of additional CPUs set to 0) Before: NR_CPUS: 512, nr_cpu_ids: 2, nr_node_ids 1 After: NR_CPUS: 512, nr_cpu_ids: 1, nr_node_ids 1 [Changed the name of the option and the prompt according to Ingo's suggestion.] Signed-off-by: Ingo Molnar <mingo@elte.hu>
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 fc8351f374fd..adaca6fa927d 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1438,6 +1438,24 @@ config HOTPLUG_CPU
1438 automatically on SMP systems. ) 1438 automatically on SMP systems. )
1439 Say N if you want to disable CPU hotplug. 1439 Say N if you want to disable CPU hotplug.
1440 1440
1441config HOTPLUG_RESTRICT_TO_BOOTUP_CPUS
1442 def_bool n
1443 prompt "Restrict CPU hotplugging to processors found during boot" if HOTPLUG_CPU
1444 ---help---
1445 Say no here to use the default, which allows as many CPUs as are marked
1446 "disabled" by ACPI or MPTABLES to be hotplugged after bootup.
1447
1448 Say yes if you do not want to allow CPUs to be added after booting, for
1449 example if you only need CPU hotplugging enabled for suspend/resume.
1450
1451 If CPU_HOTPLUG is enabled this value may be overridden at boot time
1452 with the "additional_cpus" kernel parameter.
1453
1454config HOTPLUG_ADDITIONAL_CPUS
1455 int
1456 default 0 if !HOTPLUG_CPU || HOTPLUG_RESTRICT_TO_BOOTUP_CPUS
1457 default -1
1458
1441config COMPAT_VDSO 1459config COMPAT_VDSO
1442 def_bool y 1460 def_bool y
1443 prompt "Compat VDSO support" 1461 prompt "Compat VDSO support"
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 23913785c262..857a88bb9195 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)
1261 check_nmi_watchdog(); 1261 check_nmi_watchdog();
1262} 1262}
1263 1263
1264static int additional_cpus __initdata = -1; 1264static int additional_cpus __initdata = CONFIG_HOTPLUG_ADDITIONAL_CPUS;
1265 1265
1266/* 1266/*
1267 * cpu_possible_map should be static, it cannot change as cpu's 1267 * cpu_possible_map should be static, it cannot change as cpu's