x86/Kconfig: Further simplify the NR_CPUS config

"Linux Kernel Mailing List" <[email protected]> Thu, 15 Feb 2018 01:48:52 +0000 (UTC)
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/aec6487e994d2f625197970a56a4aac40c2c7547
Commit:     aec6487e994d2f625197970a56a4aac40c2c7547
Parent:     a0d0bb4deba831085d3eeb32d39fe73713ce6eb2
Refname:    refs/heads/master
Author:     Ingo Molnar <[email protected]>
AuthorDate: Sat Feb 10 12:36:29 2018 +0100
Committer:  Ingo Molnar <[email protected]>
CommitDate: Sun Feb 11 11:51:34 2018 +0100

    x86/Kconfig: Further simplify the NR_CPUS config
    
    Clean up various aspects of the x86 CONFIG_NR_CPUS configuration switches:
    
    - Rename the three CONFIG_NR_CPUS related variables to create a common
      namespace for them:
    
        RANGE_BEGIN_CPUS => NR_CPUS_RANGE_BEGIN
        RANGE_END_CPUS   => NR_CPUS_RANGE_END
        DEF_CONFIG_CPUS  => NR_CPUS_DEFAULT
    
    - Align them vertically, such as:
    
        config NR_CPUS_RANGE_END
                int
                depends on X86_64
                default 8192 if  SMP && ( MAXSMP ||  CPUMASK_OFFSTACK)
                default  512 if  SMP && (!MAXSMP && !CPUMASK_OFFSTACK)
                default    1 if !SMP
    
    - Update help text, add more comments.
    
    Test results:
    
     # i386 allnoconfig:
     CONFIG_NR_CPUS_RANGE_BEGIN=1
     CONFIG_NR_CPUS_RANGE_END=1
     CONFIG_NR_CPUS_DEFAULT=1
     CONFIG_NR_CPUS=1
    
     # i386 defconfig:
     CONFIG_NR_CPUS_RANGE_BEGIN=2
     CONFIG_NR_CPUS_RANGE_END=8
     CONFIG_NR_CPUS_DEFAULT=8
     CONFIG_NR_CPUS=8
    
     # i386 allyesconfig:
     CONFIG_NR_CPUS_RANGE_BEGIN=2
     CONFIG_NR_CPUS_RANGE_END=64
     CONFIG_NR_CPUS_DEFAULT=32
     CONFIG_NR_CPUS=32
    
     # x86_64 allnoconfig:
     CONFIG_NR_CPUS_RANGE_BEGIN=1
     CONFIG_NR_CPUS_RANGE_END=1
     CONFIG_NR_CPUS_DEFAULT=1
     CONFIG_NR_CPUS=1
    
     # x86_64 defconfig:
     CONFIG_NR_CPUS_RANGE_BEGIN=2
     CONFIG_NR_CPUS_RANGE_END=512
     CONFIG_NR_CPUS_DEFAULT=64
     CONFIG_NR_CPUS=64
    
     # x86_64 allyesconfig:
     CONFIG_NR_CPUS_RANGE_BEGIN=8192
     CONFIG_NR_CPUS_RANGE_END=8192
     CONFIG_NR_CPUS_DEFAULT=8192
     CONFIG_NR_CPUS=8192
    
    Acked-by: Randy Dunlap <[email protected]>
    Acked-by: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ingo Molnar <[email protected]>
---
 arch/x86/Kconfig | 66 ++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 40 insertions(+), 26 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 9d921b78b145..a528c14d45a5 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -949,52 +949,66 @@ config MAXSMP
 	  Enable maximum number of CPUS and NUMA Nodes for this architecture.
 	  If unsure, say N.
 
-config RANGE_END_CPUS
+#
+# The maximum number of CPUs supported:
+#
+# The main config value is NR_CPUS, which defaults to NR_CPUS_DEFAULT,
+# and which can be configured interactively in the
+# [NR_CPUS_RANGE_BEGIN ... NR_CPUS_RANGE_END] range.
+#
+# The ranges are different on 32-bit and 64-bit kernels, depending on
+# hardware capabilities and scalability features of the kernel.
+#
+# ( If MAXSMP is enabled we just use the highest possible value and disable
+#   interactive configuration. )
+#
+
+config NR_CPUS_RANGE_BEGIN
 	int
-	depends on X86_32
-	default 8 if SMP && !X86_BIGSMP
-	default 64 if SMP && X86_BIGSMP
-	default 1 if !SMP
+	default NR_CPUS_RANGE_END if MAXSMP
+	default    1 if !SMP
+	default    2
 
-config RANGE_END_CPUS
+config NR_CPUS_RANGE_END
 	int
-	depends on X86_64
-	default 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACK
-	default 8192 if SMP && (MAXSMP || CPUMASK_OFFSTACK)
-	default 1 if !SMP
+	depends on X86_32
+	default   64 if  SMP &&  X86_BIGSMP
+	default    8 if  SMP && !X86_BIGSMP
+	default    1 if !SMP
 
-config RANGE_BEGIN_CPUS
+config NR_CPUS_RANGE_END
 	int
-	default 1 if !SMP
-	default RANGE_END_CPUS if MAXSMP
-	default 2
+	depends on X86_64
+	default 8192 if  SMP && ( MAXSMP ||  CPUMASK_OFFSTACK)
+	default  512 if  SMP && (!MAXSMP && !CPUMASK_OFFSTACK)
+	default    1 if !SMP
 
-config DEF_CONFIG_CPUS
+config NR_CPUS_DEFAULT
 	int
 	depends on X86_32
-	default 1 if !SMP
-	default 32 if X86_BIGSMP
-	default 8 if SMP
+	default   32 if  X86_BIGSMP
+	default    8 if  SMP
+	default    1 if !SMP
 
-config DEF_CONFIG_CPUS
+config NR_CPUS_DEFAULT
 	int
 	depends on X86_64
-	default 1 if !SMP
-	default 8192 if MAXSMP
-	default 64 if SMP
+	default 8192 if  MAXSMP
+	default   64 if  SMP
+	default    1 if !SMP
 
 config NR_CPUS
 	int "Maximum number of CPUs" if SMP && !MAXSMP
-	range RANGE_BEGIN_CPUS RANGE_END_CPUS
-	default DEF_CONFIG_CPUS
+	range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END
+	default NR_CPUS_DEFAULT
 	---help---
 	  This allows you to specify the maximum number of CPUs which this
 	  kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum
 	  supported value is 8192, otherwise the maximum value is 512.  The
 	  minimum value which makes sense is 2.
 
-	  This is purely to save memory - each supported CPU adds
-	  approximately eight kilobytes to the kernel image.
+	  This is purely to save memory: each supported CPU adds about 8KB
+	  to the kernel image.
 
 config SCHED_SMT
 	bool "SMT (Hyperthreading) scheduler support"
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html