lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 9 Feb 2018 14:01:50 -0800
From:   Randy Dunlap <rdunlap@...radead.org>
To:     Linus Torvalds <torvalds@...ux-foundation.org>,
        X86 ML <x86@...nel.org>
Cc:     LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH] x86: try to simplify NR_CPUS config

From: Randy Dunlap <rdunlap@...radead.org>

Clean up and simplify the X86 NR_CPUS Kconfig symbol/option by
introducing MIN_CONFIG_CPUS, MAX_CONFIG_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".

This is a rather literal interpretation of Linus's suggestion.
It mostly moves the complexity to other kconfig symbols, although
a little bit more reduction can be done, especially in
RANGE_BEGIN_CPUS, at the sake of understandability, so I chose
to leave it more understandable (at least to me).

Suggested-by: Linus Torvalds <torvalds@...uxfoundation.org>
Link: lkml.kernel.org/r/CA+55aFzOd3j6ZUSkEwTdk85qtt1JywOtm3ZAb-qAvt8_hJ6D4A@...l.gmail.com
Signed-off-by: Randy Dunlap <rdunlap@...radead.org>
Cc: x86@...nel.org
---
 arch/x86/Kconfig |   48 ++++++++++++++++++++++++++++++---------------
 1 file changed, 33 insertions(+), 15 deletions(-)

--- linux-next-20180209.orig/arch/x86/Kconfig
+++ linux-next-20180209/arch/x86/Kconfig
@@ -423,12 +423,6 @@ config X86_MPPARSE
 	  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
 
-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
        def_bool y
        depends on X86_GOLDFISH
@@ -460,6 +454,12 @@ config INTEL_RDT
 	  Say N if unsure.
 
 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
 	bool "Support for extended (non-PC) x86 platforms"
 	default y
@@ -949,17 +949,35 @@ config MAXSMP
 	  Enable maximum number of CPUS and NUMA Nodes for this architecture.
 	  If unsure, say N.
 
+config RANGE_BEGIN_CPUS
+	int
+	default 2 if SMP && X86_32
+	default 2 if SMP && !MAXSMP && X86_64
+	default 8192 if SMP && MAXSMP && X86_64
+	default 1 if !SMP
+	default 2
+
+config RANGE_END_CPUS
+	int
+	default 8 if SMP && X86_32 && !X86_BIGSMP
+	default 64 if SMP && X86_32 && X86_BIGSMP
+	default 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACK && X86_64
+	default 8192 if SMP && !MAXSMP && CPUMASK_OFFSTACK && X86_64
+	default 8192 if SMP && MAXSMP && X86_64
+	default 1 if !SMP
+
+config DEF_CONFIG_CPUS
+	int
+	default 1 if !SMP
+	default 8192 if MAXSMP
+	default 32 if SMP && X86_BIGSMP
+	default 8 if SMP && X86_32
+	default 64 if SMP
+
 config NR_CPUS
 	int "Maximum number of CPUs" if SMP && !MAXSMP
-	range 2 8 if SMP && X86_32 && !X86_BIGSMP
-	range 2 64 if SMP && X86_32 && X86_BIGSMP
-	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
+	range RANGE_BEGIN_CPUS RANGE_END_CPUS
+	default DEF_CONFIG_CPUS
 	---help---
 	  This allows you to specify the maximum number of CPUs which this
 	  kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ