* [PATCH] x86: try to simplify NR_CPUS config
@ 2018-02-09 22:01 Randy Dunlap
2018-02-09 22:39 ` Linus Torvalds
0 siblings, 1 reply; 12+ messages in thread
From: Randy Dunlap @ 2018-02-09 22:01 UTC (permalink / raw)
To: Linus Torvalds, X86 ML; +Cc: LKML
From: Randy Dunlap <rdunlap@infradead.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@linuxfoundation.org>
Link: lkml.kernel.org/r/CA+55aFzOd3j6ZUSkEwTdk85qtt1JywOtm3ZAb-qAvt8_hJ6D4A@mail.gmail.com
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: x86@kernel.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
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH] x86: try to simplify NR_CPUS config 2018-02-09 22:01 [PATCH] x86: try to simplify NR_CPUS config Randy Dunlap @ 2018-02-09 22:39 ` Linus Torvalds 2018-02-10 0:51 ` [PATCH v2] x86: " Randy Dunlap 0 siblings, 1 reply; 12+ messages in thread From: Linus Torvalds @ 2018-02-09 22:39 UTC (permalink / raw) To: Randy Dunlap; +Cc: X86 ML, LKML On Fri, Feb 9, 2018 at 2:01 PM, Randy Dunlap <rdunlap@infradead.org> wrote: > > This is a rather literal interpretation of Linus's suggestion. I think it can be simplified a bit more. If you move the definition of RANGE_END_CPUS up to before RANGE_BEGIN_CPUS, you can then make the RANGE_BEGIN_CPUS just be something like default 1 if !SMP default RANGE_END_CPUS if MAXSMP default 2 which makes a whole lot more sense. and if you split that RANGE_END_CPUS so that the x86-32 and x86-64 cases are separate, that makes *those* more understandable. It also makes sense to separate since X86_BIGSMP is 32-bit only. But yes, this looks like it's in the right direction, where we can make each step be fairly obvious, instead of the current NR_CPUS mess that is entirely impossible to parse for mere humans. Linus ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] x86: simplify NR_CPUS config 2018-02-09 22:39 ` Linus Torvalds @ 2018-02-10 0:51 ` Randy Dunlap 2018-02-10 11:36 ` [PATCH] x86/Kconfig: Further simplify the " Ingo Molnar 2018-02-11 12:11 ` [tip:x86/urgent] x86/Kconfig: Simplify " tip-bot for Randy Dunlap 0 siblings, 2 replies; 12+ messages in thread From: Randy Dunlap @ 2018-02-10 0:51 UTC (permalink / raw) To: Linus Torvalds; +Cc: X86 ML, LKML From: Randy Dunlap <rdunlap@infradead.org> 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: Linus Torvalds <torvalds@linuxfoundation.org> Link: lkml.kernel.org/r/CA+55aFzOd3j6ZUSkEwTdk85qtt1JywOtm3ZAb-qAvt8_hJ6D4A@mail.gmail.com Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: x86@kernel.org --- arch/x86/Kconfig | 57 +++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 15 deletions(-) v2: more simplification as suggested by Linus; also separate the X86_32 and X86_64 configs. --- 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,44 @@ config MAXSMP Enable maximum number of CPUS and NUMA Nodes for this architecture. 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 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 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 0:51 ` [PATCH v2] x86: " Randy Dunlap @ 2018-02-10 11:36 ` Ingo Molnar 2018-02-10 11:38 ` Ingo Molnar 2018-02-11 12:12 ` [tip:x86/urgent] " tip-bot for Ingo Molnar 2018-02-11 12:11 ` [tip:x86/urgent] x86/Kconfig: Simplify " tip-bot for Randy Dunlap 1 sibling, 2 replies; 12+ messages in thread From: Ingo Molnar @ 2018-02-10 11:36 UTC (permalink / raw) To: Randy Dunlap Cc: Linus Torvalds, X86 ML, LKML, Thomas Gleixner, Peter Zijlstra * Randy Dunlap <rdunlap@infradead.org> wrote: > From: Randy Dunlap <rdunlap@infradead.org> > > 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: Linus Torvalds <torvalds@linuxfoundation.org> > Link: lkml.kernel.org/r/CA+55aFzOd3j6ZUSkEwTdk85qtt1JywOtm3ZAb-qAvt8_hJ6D4A@mail.gmail.com > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Cc: x86@kernel.org > --- > arch/x86/Kconfig | 57 +++++++++++++++++++++++++++++++++------------ > 1 file changed, 42 insertions(+), 15 deletions(-) Looks mostly good to me in principle - there's a few style nits: > > v2: more simplification as suggested by Linus; also separate the > X86_32 and X86_64 configs. > > --- 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,44 @@ config MAXSMP > Enable maximum number of CPUS and NUMA Nodes for this architecture. > 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 I'd suggest a more natural naming order, which also lines up with how we name the main parameter in the end (CONFIG_NR_CPUS): NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END > +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 This too needs to match the target namespace, i.e.: NR_CPUS_DEFAULT I.e. instead of the random, idiosynchratic naming this patch introduces: CONFIG_RANGE_BEGIN_CPUS CONFIG_RANGE_END_CPUS CONFIG_DEF_CONFIG_CPUS CONFIG_NR_CPUS We'll get: CONFIG_NR_CPUS_RANGE_BEGIN CONFIG_NR_CPUS_RANGE_END CONFIG_NR_CPUS_DEFAULT CONFIG_NR_CPUS See how much more structured and organized it all is, both in the source and in the resulting .config file? Also, a side effect is that a simple NR_CPUS grep: triton:~/tip> grep NR_CPUS .config CONFIG_NR_CPUS_RANGE_BEGIN=2 CONFIG_NR_CPUS_RANGE_END=512 CONFIG_NR_CPUS_DEFAULT=64 CONFIG_NR_CPUS=64 grep NR_CPUS .config ... will tell the full story about how the NR_CPUS Kconfig setup on a particular system looks like. There's no such grep command for the patch you sent, because for example the pattern 'CPUS' is too generic as it matches 'CPUSET' and 'PTLOCK_CPUS' as well. Furthermore, these blocks should be vertically aligned: > + default 1 if !SMP > + default 8192 if MAXSMP > + default 64 if SMP To: default 1 if !SMP default 8192 if MAXSMP default 64 if SMP Also note that the moment we have aligned this block vertically, it becomes clear at a glance that the internal ordering of the lines should be numeric (in decreasing order, to arrive at the highest possible value): default 8192 if MAXSMP default 64 if SMP default 1 if !SMP We should do the same for all the other entries as well. A third general problem is the somewhat random ordering of the Kconfig blocks themselves: +config NR_CPUS_RANGE_END +config NR_CPUS_RANGE_BEGIN +config NR_CPUS_DEFAULT The more natural ordering is _RANGE_BEGIN, _RANGE_END, _DEFAULT. (The Kconfig language allows forward references, so the fact that _BEGIN in a narrow case depends on _END isn't a problem.) ... below is the a patch on top of yours that fixes all this and a few other details - see the changelog. Thanks, Ingo =========================> Subject: x86/Kconfig: Further simplify the NR_CPUS config From: Ingo Molnar <mingo@kernel.org> Date: Sat Feb 10 11:51:57 CET 2018 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 Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/x86/Kconfig | 66 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 26 deletions(-) Index: tip/arch/x86/Kconfig =================================================================== --- tip.orig/arch/x86/Kconfig +++ tip/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" ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 11:36 ` [PATCH] x86/Kconfig: Further simplify the " Ingo Molnar @ 2018-02-10 11:38 ` Ingo Molnar 2018-02-10 17:37 ` Randy Dunlap 2018-02-10 22:19 ` Linus Torvalds 2018-02-11 12:12 ` [tip:x86/urgent] " tip-bot for Ingo Molnar 1 sibling, 2 replies; 12+ messages in thread From: Ingo Molnar @ 2018-02-10 11:38 UTC (permalink / raw) To: Randy Dunlap Cc: Linus Torvalds, X86 ML, LKML, Thomas Gleixner, Peter Zijlstra * Ingo Molnar <mingo@kernel.org> wrote: > =========================> > Subject: x86/Kconfig: Further simplify the NR_CPUS config > From: Ingo Molnar <mingo@kernel.org> > Date: Sat Feb 10 11:51:57 CET 2018 > > 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 > > Cc: Linus Torvalds <torvalds@linux-foundation.org> > Signed-off-by: Ingo Molnar <mingo@kernel.org> > --- > arch/x86/Kconfig | 66 +++++++++++++++++++++++++++++++++---------------------- > 1 file changed, 40 insertions(+), 26 deletions(-) Here is a full combo patch of your patch and mine, for easier review: --- arch/x86/Kconfig | 75 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 17 deletions(-) Index: tip/arch/x86/Kconfig =================================================================== --- tip.orig/arch/x86/Kconfig +++ tip/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,25 +949,66 @@ config MAXSMP Enable maximum number of CPUS and NUMA Nodes for this architecture. If unsure, say N. +# +# 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 + default NR_CPUS_RANGE_END if MAXSMP + default 1 if !SMP + default 2 + +config NR_CPUS_RANGE_END + int + depends on X86_32 + default 64 if SMP && X86_BIGSMP + default 8 if SMP && !X86_BIGSMP + default 1 if !SMP + +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 + +config NR_CPUS_DEFAULT + int + depends on X86_32 + default 32 if X86_BIGSMP + default 8 if SMP + default 1 if !SMP + +config NR_CPUS_DEFAULT + int + depends on X86_64 + default 8192 if MAXSMP + default 64 if SMP + default 1 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 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" ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 11:38 ` Ingo Molnar @ 2018-02-10 17:37 ` Randy Dunlap 2018-02-10 22:19 ` Linus Torvalds 1 sibling, 0 replies; 12+ messages in thread From: Randy Dunlap @ 2018-02-10 17:37 UTC (permalink / raw) To: Ingo Molnar; +Cc: Linus Torvalds, X86 ML, LKML, Thomas Gleixner, Peter Zijlstra On 02/10/2018 03:38 AM, Ingo Molnar wrote: > >> Cc: Linus Torvalds <torvalds@linux-foundation.org> >> Signed-off-by: Ingo Molnar <mingo@kernel.org> >> --- >> arch/x86/Kconfig | 66 +++++++++++++++++++++++++++++++++---------------------- >> 1 file changed, 40 insertions(+), 26 deletions(-) > > Here is a full combo patch of your patch and mine, for easier review: > Looks very nice. Thanks. Acked-by: Randy Dunlap <rdunlap@infradead.org> if you want it. -- ~Randy ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 11:38 ` Ingo Molnar 2018-02-10 17:37 ` Randy Dunlap @ 2018-02-10 22:19 ` Linus Torvalds 2018-02-11 1:11 ` Randy Dunlap 2018-02-11 10:50 ` Ingo Molnar 1 sibling, 2 replies; 12+ messages in thread From: Linus Torvalds @ 2018-02-10 22:19 UTC (permalink / raw) To: Ingo Molnar; +Cc: Randy Dunlap, X86 ML, LKML, Thomas Gleixner, Peter Zijlstra Looks good to me. At the risk of bike-shedding, we could remove all the default 1 if !SMP from the BEGIN/END/DEFAULT things, and perhaps just keep that part in NR_CPUS. I didn't check, but I *think* it would work to just do config NR_CPUS int "Maximum number of CPUs" if SMP && !MAXSMP range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END default "1" if !SMP default NR_CPUS_DEFAULT but maybe the "range" line would need an "if !SMP" on it too to avoid the issue with "1" being out of range., That would still leave the NR_CPUS thing *much* easier to understand, and it would mean that the other helper things wouldn't need to care about the UP case. But regardless, that least version looks perfectly fine to me even without that random tweak. Linus ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 22:19 ` Linus Torvalds @ 2018-02-11 1:11 ` Randy Dunlap 2018-02-11 10:47 ` Ingo Molnar 2018-02-11 10:50 ` Ingo Molnar 1 sibling, 1 reply; 12+ messages in thread From: Randy Dunlap @ 2018-02-11 1:11 UTC (permalink / raw) To: Linus Torvalds, Ingo Molnar; +Cc: X86 ML, LKML, Thomas Gleixner, Peter Zijlstra On 02/10/2018 02:19 PM, Linus Torvalds wrote: > Looks good to me. > > At the risk of bike-shedding, we could remove all the > > default 1 if !SMP > > from the BEGIN/END/DEFAULT things, and perhaps just keep that part in NR_CPUS. > > I didn't check, but I *think* it would work to just do > > config NR_CPUS > int "Maximum number of CPUs" if SMP && !MAXSMP > range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END > default "1" if !SMP > default NR_CPUS_DEFAULT > > but maybe the "range" line would need an "if !SMP" on it too to avoid > the issue with "1" being out of range., Yeah, I had an early test that failed due to something like that. -- ~Randy ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-11 1:11 ` Randy Dunlap @ 2018-02-11 10:47 ` Ingo Molnar 0 siblings, 0 replies; 12+ messages in thread From: Ingo Molnar @ 2018-02-11 10:47 UTC (permalink / raw) To: Randy Dunlap Cc: Linus Torvalds, X86 ML, LKML, Thomas Gleixner, Peter Zijlstra * Randy Dunlap <rdunlap@infradead.org> wrote: > On 02/10/2018 02:19 PM, Linus Torvalds wrote: > > Looks good to me. > > > > At the risk of bike-shedding, we could remove all the > > > > default 1 if !SMP > > > > from the BEGIN/END/DEFAULT things, and perhaps just keep that part in NR_CPUS. > > > > I didn't check, but I *think* it would work to just do > > > > config NR_CPUS > > int "Maximum number of CPUs" if SMP && !MAXSMP > > range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END > > default "1" if !SMP > > default NR_CPUS_DEFAULT > > > > but maybe the "range" line would need an "if !SMP" on it too to avoid > > the issue with "1" being out of range., > > Yeah, I had an early test that failed due to something like that. I *think* I slightly prefer the current approach, because while it's somewhat verbose, the advantage is that this way we have *all* range considerations for a given main hardware variant in a single place, and the main NR_CPUS config entry is 'passive' in terms of determining the range used. Plus the verbosity isn't really a problem either, as the whole approach is a 'verbose' expansion of an overly complex config expression, for better readability/maintainability. Thanks, Ingo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 22:19 ` Linus Torvalds 2018-02-11 1:11 ` Randy Dunlap @ 2018-02-11 10:50 ` Ingo Molnar 1 sibling, 0 replies; 12+ messages in thread From: Ingo Molnar @ 2018-02-11 10:50 UTC (permalink / raw) To: Linus Torvalds Cc: Randy Dunlap, X86 ML, LKML, Thomas Gleixner, Peter Zijlstra * Linus Torvalds <torvalds@linux-foundation.org> wrote: > But regardless, that least version looks perfectly fine to me even > without that random tweak. Thanks, I turned this into: Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Ingo ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tip:x86/urgent] x86/Kconfig: Further simplify the NR_CPUS config 2018-02-10 11:36 ` [PATCH] x86/Kconfig: Further simplify the " Ingo Molnar 2018-02-10 11:38 ` Ingo Molnar @ 2018-02-11 12:12 ` tip-bot for Ingo Molnar 1 sibling, 0 replies; 12+ messages in thread From: tip-bot for Ingo Molnar @ 2018-02-11 12:12 UTC (permalink / raw) To: linux-tip-commits Cc: rdunlap, mingo, torvalds, a.p.zijlstra, tglx, hpa, linux-kernel, peterz Commit-ID: aec6487e994d2f625197970a56a4aac40c2c7547 Gitweb: https://git.kernel.org/tip/aec6487e994d2f625197970a56a4aac40c2c7547 Author: Ingo Molnar <mingo@kernel.org> AuthorDate: Sat, 10 Feb 2018 12:36:29 +0100 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Sun, 11 Feb 2018 11:51:34 +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 <rdunlap@infradead.org> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20180210113629.jcv6su3r4suuno63@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/x86/Kconfig | 66 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 9d921b7..a528c14 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" ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [tip:x86/urgent] x86/Kconfig: Simplify NR_CPUS config 2018-02-10 0:51 ` [PATCH v2] x86: " Randy Dunlap 2018-02-10 11:36 ` [PATCH] x86/Kconfig: Further simplify the " Ingo Molnar @ 2018-02-11 12:11 ` tip-bot for Randy Dunlap 1 sibling, 0 replies; 12+ messages in thread From: tip-bot for Randy Dunlap @ 2018-02-11 12:11 UTC (permalink / raw) To: linux-tip-commits Cc: hpa, torvalds, peterz, rdunlap, torvalds, mingo, linux-kernel, tglx Commit-ID: a0d0bb4deba831085d3eeb32d39fe73713ce6eb2 Gitweb: https://git.kernel.org/tip/a0d0bb4deba831085d3eeb32d39fe73713ce6eb2 Author: Randy Dunlap <rdunlap@infradead.org> AuthorDate: Fri, 9 Feb 2018 16:51:03 -0800 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Sun, 11 Feb 2018 11:51:33 +0100 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: Linus Torvalds <torvalds@linuxfoundation.org> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Acked-by: Linus 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: Ingo Molnar <mingo@kernel.org> --- arch/x86/Kconfig | 57 +++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 63bf349..9d921b7 100644 --- a/arch/x86/Kconfig +++ b/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,44 @@ config MAXSMP Enable maximum number of CPUS and NUMA Nodes for this architecture. 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 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 ^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-02-12 1:47 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-02-09 22:01 [PATCH] x86: try to simplify NR_CPUS config Randy Dunlap 2018-02-09 22:39 ` Linus Torvalds 2018-02-10 0:51 ` [PATCH v2] x86: " Randy Dunlap 2018-02-10 11:36 ` [PATCH] x86/Kconfig: Further simplify the " Ingo Molnar 2018-02-10 11:38 ` Ingo Molnar 2018-02-10 17:37 ` Randy Dunlap 2018-02-10 22:19 ` Linus Torvalds 2018-02-11 1:11 ` Randy Dunlap 2018-02-11 10:47 ` Ingo Molnar 2018-02-11 10:50 ` Ingo Molnar 2018-02-11 12:12 ` [tip:x86/urgent] " tip-bot for Ingo Molnar 2018-02-11 12:11 ` [tip:x86/urgent] x86/Kconfig: Simplify " tip-bot for Randy Dunlap
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).