Re: [patch V3 09/20] cpumask: Cache num_possible_cpus()
From: Thomas Gleixner
Date: Mon Nov 03 2025 - 08:32:44 EST
On Mon, Nov 03 2025 at 15:36, Shrikanth Hegde wrote:
> 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@xxxxxxxxxxxxx>
>
>
> 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?
It can't. So yes the cpus_read_lock() is pointless.