Re: [patch V3 09/20] cpumask: Cache num_possible_cpus()
From: Shrikanth Hegde
Date: Mon Nov 03 2025 - 05:09:21 EST
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?
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reviewed-by: Yury Norov <yury.norov@xxxxxxxxx>
---