[PATCH] ARM64: Dynamically allocate cpumasks and increase supported CPUs to 512

Kefeng Wang wangkefeng.wang at huawei.com
Mon Jan 15 23:10:26 PST 2024



On 2024/1/15 23:39, Russell King (Oracle) wrote:
> On Thu, Dec 14, 2023 at 04:05:56PM -0800, Christoph Lameter (Ampere) wrote:
>> Index: linux/arch/arm64/Kconfig
>> ===================================================================
>> --- linux.orig/arch/arm64/Kconfig
>> +++ linux/arch/arm64/Kconfig
>> @@ -1407,7 +1407,21 @@ config SCHED_SMT
>>    config NR_CPUS
>>    	int "Maximum number of CPUs (2-4096)"
>>    	range 2 4096
> 
> I think your mailer got to your patch and messed up the white space.
> There are two spaces before each of these lines rather than the usual
> one.
> 
>> -	default "256"
>> +	default 512
>> +
>> +#
>> +# Determines the placement of cpumasks.
>> +#
>> +# With CPUMASK_OFFSTACK the cpumasks are dynamically allocated.
>> +# Useful for machines with lots of core because it avoids increasing
>> +# the size of many of the data structures in the kernel.
>> +#
>> +# If this is off then the cpumasks have a static sizes and are
>> +# embedded within data structures.
>> +#
>> +config CPUMASK_OFFSTACK
>> +	def_bool y
>> +	depends on NR_CPUS > 256
> 
> Should that be ">= 256" ?

Maybe just select CPUMASK_OFFSTACK if NR_CPUS >= 256,


But could we just make CPUMASK_OFFSTACK configurable and let user/distro
to enable it?

diff --git a/lib/Kconfig b/lib/Kconfig
index 5ddda7c2ed9b..4254be5aa843 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -535,7 +535,9 @@ config CHECK_SIGNATURE
         bool

  config CPUMASK_OFFSTACK
-       bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
+       bool "Force CPU masks off stack"
+       depends on SMP
+       default n
         help
           Use dynamic allocation for cpumask_var_t, instead of putting
           them on the stack.  This is a bit more expensive, but avoids


> 
>>
>>    config HOTPLUG_CPU
>>    	bool "Support for hot-pluggable CPUs"
> 
> Same here.
> 



More information about the linux-arm-kernel mailing list