Re: [PATCH v2 0/5] cpumask: cleanup nr_cpu_ids vs nr_cpumask_bits mess

From: Yury Norov
Date: Tue Sep 06 2022 - 11:41:48 EST


On Tue, Sep 06, 2022 at 01:06:47PM +0100, Valentin Schneider wrote:
> On 06/09/22 10:55, Peter Zijlstra wrote:
> > On Mon, Sep 05, 2022 at 04:08:15PM -0700, Yury Norov wrote:
> >> cpumask subsystem uses nr_cpu_ids and nr_cpumask_bits interchangeably
> >> despite that the variables have different meaning and purpose. It makes
> >> some cpumask functions broken.
> >>
> >> This series cleans that mess and adds new config FORCE_NR_CPUS that
> >> allows to optimize cpumask subsystem if the number of CPUs is known
> >> at compile-time.
> >
> > Who will use this? Distro's can't, which means 99% of people will not
> > use this ever. Is it worth it?
>
> I'd tend to agree here.
>
> One extra thing worth noting is CONFIG_CPUMASK_OFFSTACK=n cpumask_size()
> still uses NR_CPUS under the hood, despite being (mostly) used to
> dynamically allocate cpumasks. So having an unconditionnal
>
> #define nr_cpumask_bits nr_cpu_ids
>
> would save up some memory for those allocations.

Thanks, I didn't mention this. This is exactly what I meant by
'cleaning the mess'.

> A quick compile test on x86 defconfig (OFFSTACK=n) gives me:
>
> Total: Before=18711411, After=18705653, chg -0.03%

All cpumask_size() allocations are runtime, right?

> If it's in the range of barely-half-a-page on other archs, could we just
> do that then?

How many is that in terms of I-cache lines?