On Sat, Apr 20, 2024 at 01:15:45PM +0800, Dawei Li wrote: > In general it's preferable to avoid placing cpumasks on the stack, as > for large values of NR_CPUS these can consume significant amounts of > stack space and make stack overflows more likely. > > Since the cpumask var resides in __init function, which means it's free > of any concurrenct access, it can be safely marked with static to get > rid of allocation on stack. > > while at it, mark it with __initdata to keep it from persistently > consumed memory. I do not see the need for this - it does not fix a bug and it complicates things. If the size is a real concern the normal pattern is to allocate and not declare it __initdata. Yes - __initdata is used in some place. I suggest to leave it as is unless we are fixing a real bug here. Sam > > Signed-off-by: Dawei Li <dawei.li@xxxxxxxxxxxx> > --- > arch/sparc/mm/init_64.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c > index 1ca9054d9b97..088d9c103dcc 100644 > --- a/arch/sparc/mm/init_64.c > +++ b/arch/sparc/mm/init_64.c > @@ -1438,7 +1438,7 @@ static int __init numa_attach_mlgroup(struct mdesc_handle *md, u64 grp, > static int __init numa_parse_mdesc_group(struct mdesc_handle *md, u64 grp, > int index) > { > - cpumask_t mask; > + static cpumask_t mask __initdata; > int cpu; > > numa_parse_mdesc_group_cpus(md, grp, &mask); > -- > 2.27.0