Le 09/11/2021 à 07:51, Nicholas Piggin a écrit :
Similarly to x86, add MAXSMP that should help flush out problems with
vary large SMP and other values associated with very big systems.

Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
Since v1:
- Reduce MAXSMP NR_CPUS to 8192 if COMPILE_TEST, to reduce compile errors
   that aren't caught by existing x86 builds.

Thanks,
Nick

  arch/powerpc/Kconfig                   | 8 ++++++++
  arch/powerpc/platforms/Kconfig.cputype | 9 +++++++--
  2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index b8f6185d3998..d585fcfa456f 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -64,6 +64,13 @@ config NEED_PER_CPU_EMBED_FIRST_CHUNK
  config NEED_PER_CPU_PAGE_FIRST_CHUNK
        def_bool y if PPC64
+config MAXSMP
+       bool "Enable Maximum number of SMP Processors and NUMA Nodes"
+       depends on SMP && DEBUG_KERNEL && PPC_BOOK3S_64
+       help
+         Enable maximum number of CPUS and NUMA Nodes for this architecture.
+         If unsure, say N.
+
  config NR_IRQS
        int "Number of virtual interrupt numbers"
        range 32 1048576
@@ -666,6 +673,7 @@ config NUMA
config NODES_SHIFT
        int
+       default "10" if MAXSMP
        default "8" if PPC64
        default "4"
        depends on NUMA
diff --git a/arch/powerpc/platforms/Kconfig.cputype 
b/arch/powerpc/platforms/Kconfig.cputype
index a208997ade88..14c275e0ff93 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -475,9 +475,14 @@ config SMP
If you don't know what to do here, say N. +# MAXSMP sets 8192 if COMPILE_TEST because that's what x86 has flushed out.
+# Exceeding that will cause a lot of compile errors. Have to deal with those
+# first.
  config NR_CPUS
-       int "Maximum number of CPUs (2-8192)" if SMP
-       range 2 8192 if SMP
+       int "Maximum number of CPUs (2-8192)" if SMP && !MAXSMP
+       range 2 16384 if SMP
+       default 16384 if MAXSMP && !COMPILE_TEST
+       default 8192 if MAXSMP && COMPILE_TEST

You can do less complex. First hit becomes the default, so you can do:

        default 8192 if MAXSMP && COMPILE_TEST
        default 16384 if MAXSMP

So when everything is fixed, you just have to drop first line.

        default "1" if !SMP
        default "32" if PPC64
        default "4"

Reply via email to