Re: [patch V3 09/20] cpumask: Cache num_possible_cpus()

Shrikanth Hegde
2025-11-03T10:06:58Z

On 10/29/25 6:39 PM, Thomas Gleixner wrote:
> Reevaluating num_possible_cpus() over and over does not make sense. That
> becomes a constant after init as cpu_possible_mask is marked ro_after_init.
>
> Cache the value during initialization and provide that for consumption.
>

Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com>

Observation:
I see below usage which could be improved too?
kernel/irq/affinity.c: set_vecs = cpumask_weight(cpu_possible_mask);
lib/tests/cpumask_kunit.c: KUNIT_EXPECT_EQ_MSG(test, nr_cpu_ids, cpumask_weight(cpu_possible_mask),

Specially irq_calc_affinity_vectors, it seems to take cpus_read_lock, but I don't think
that lock is protecting possible cpus. possible cpus can't change after boot. No?

> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Reviewed-by: Yury Norov <yury.norov@gmail.com>
> ---