Commit a0d0bb4d authored by Randy Dunlap's avatar Randy Dunlap Committed by Ingo Molnar
Browse files

x86/Kconfig: Simplify NR_CPUS config



Clean up and simplify the X86 NR_CPUS Kconfig symbol/option by
introducing RANGE_BEGIN_CPUS, RANGE_END_CPUS, and DEF_CONFIG_CPUS.
Then combine some default values when their conditionals can be
reduced.

Also move the X86_BIGSMP kconfig option inside an "if X86_32"/"endif"
config block and drop its explicit "depends on X86_32".

Combine the max. 8192 cases of RANGE_END_CPUS (X86_64 only).
Split RANGE_END_CPUS and DEF_CONFIG_CPUS into separate cases for
X86_32 and X86_64.

Suggested-by: default avatarLinus Torvalds <torvalds@linuxfoundation.org>
Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/0b833246-ed4b-e451-c426-c4464725be92@infradead.org


Link: lkml.kernel.org/r/CA+55aFzOd3j6ZUSkEwTdk85qtt1JywOtm3ZAb-qAvt8_hJ6D4A@mail.gmail.com
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent c80c5ec1
Loading
Loading
Loading
Loading
+42 −15
Original line number Original line Diff line number Diff line
@@ -423,12 +423,6 @@ config X86_MPPARSE
	  For old smp systems that do not have proper acpi support. Newer systems
	  For old smp systems that do not have proper acpi support. Newer systems
	  (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
	  (esp with 64bit cpus) with acpi support, MADT and DSDT will override it


config X86_BIGSMP
	bool "Support for big SMP systems with more than 8 CPUs"
	depends on X86_32 && SMP
	---help---
	  This option is needed for the systems that have more than 8 CPUs

config GOLDFISH
config GOLDFISH
       def_bool y
       def_bool y
       depends on X86_GOLDFISH
       depends on X86_GOLDFISH
@@ -460,6 +454,12 @@ config INTEL_RDT
	  Say N if unsure.
	  Say N if unsure.


if X86_32
if X86_32
config X86_BIGSMP
	bool "Support for big SMP systems with more than 8 CPUs"
	depends on SMP
	---help---
	  This option is needed for the systems that have more than 8 CPUs

config X86_EXTENDED_PLATFORM
config X86_EXTENDED_PLATFORM
	bool "Support for extended (non-PC) x86 platforms"
	bool "Support for extended (non-PC) x86 platforms"
	default y
	default y
@@ -949,17 +949,44 @@ config MAXSMP
	  Enable maximum number of CPUS and NUMA Nodes for this architecture.
	  Enable maximum number of CPUS and NUMA Nodes for this architecture.
	  If unsure, say N.
	  If unsure, say N.


config RANGE_END_CPUS
	int
	depends on X86_32
	default 8 if SMP && !X86_BIGSMP
	default 64 if SMP && X86_BIGSMP
	default 1 if !SMP

config RANGE_END_CPUS
	int
	depends on X86_64
	default 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACK
	default 8192 if SMP && (MAXSMP || CPUMASK_OFFSTACK)
	default 1 if !SMP

config RANGE_BEGIN_CPUS
	int
	default 1 if !SMP
	default RANGE_END_CPUS if MAXSMP
	default 2

config DEF_CONFIG_CPUS
	int
	depends on X86_32
	default 1 if !SMP
	default 32 if X86_BIGSMP
	default 8 if SMP

config DEF_CONFIG_CPUS
	int
	depends on X86_64
	default 1 if !SMP
	default 8192 if MAXSMP
	default 64 if SMP

config NR_CPUS
config NR_CPUS
	int "Maximum number of CPUs" if SMP && !MAXSMP
	int "Maximum number of CPUs" if SMP && !MAXSMP
	range 2 8 if SMP && X86_32 && !X86_BIGSMP
	range RANGE_BEGIN_CPUS RANGE_END_CPUS
	range 2 64 if SMP && X86_32 && X86_BIGSMP
	default DEF_CONFIG_CPUS
	range 2 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACK && X86_64
	range 2 8192 if SMP && !MAXSMP && CPUMASK_OFFSTACK && X86_64
	default "1" if !SMP
	default "8192" if MAXSMP
	default "32" if SMP && X86_BIGSMP
	default "8" if SMP && X86_32
	default "64" if SMP
	---help---
	---help---
	  This allows you to specify the maximum number of CPUs which this
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum
	  kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum