[PATCH v2] powerpc/64s: introduce CONFIG_MAXSMP to test very large SMP

Christophe Leroy christophe.leroy at csgroup.eu
Wed Nov 10 03:16:23 AEDT 2021



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 <npiggin at 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"
> 


More information about the Linuxppc-dev mailing list