From: Lennart Poettering Date: Wed, 13 May 2026 12:58:21 +0000 (+0200) Subject: cpu-set-util: add cpu_set_count() helper X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f78e7a0949182420918aeb2dd1d44cb9ca534436;p=thirdparty%2Fsystemd.git cpu-set-util: add cpu_set_count() helper Let's add a minor, simplifying helper for getting number of CPUs in a mask. --- diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h index a74e264e126..751e9add27f 100644 --- a/src/shared/cpu-set-util.h +++ b/src/shared/cpu-set-util.h @@ -38,3 +38,11 @@ int cpu_set_to_dbus(const CPUSet *c, uint8_t **ret, size_t *ret_size); int cpu_set_from_dbus(const uint8_t *bits, size_t size, CPUSet *ret); int cpus_in_affinity_mask(void); + +static inline size_t cpu_set_count(const CPUSet *c) { + if (!c) + return 0; + if (c->allocated <= 0) + return 0; + return CPU_COUNT_S(c->allocated, c->set); +} diff --git a/src/shared/numa-util.c b/src/shared/numa-util.c index c011c4381d4..228ea7ad2d1 100644 --- a/src/shared/numa-util.c +++ b/src/shared/numa-util.c @@ -26,7 +26,7 @@ bool numa_policy_is_valid(const NUMAPolicy *policy) { if (policy->nodes.set && numa_policy_get_type(policy) == MPOL_PREFERRED && - CPU_COUNT_S(policy->nodes.allocated, policy->nodes.set) != 1) + cpu_set_count(&policy->nodes) != 1) return false; return true; diff --git a/src/test/test-cpu-set-util.c b/src/test/test-cpu-set-util.c index bd22e4ddb2a..672451ff355 100644 --- a/src/test/test-cpu-set-util.c +++ b/src/test/test-cpu-set-util.c @@ -11,7 +11,8 @@ #define ASSERT_CPUSET_COUNT(c, n) \ ASSERT_NOT_NULL(c.set); \ ASSERT_GE(c.allocated, CPU_ALLOC_SIZE(n)); \ - ASSERT_EQ(CPU_COUNT_S(c.allocated, c.set), (n)) + ASSERT_EQ(CPU_COUNT_S(c.allocated, c.set), (n)); \ + ASSERT_EQ(cpu_set_count(&c), (size_t) (n)) #define ASSERT_CPUSET_ISSET(c, i) \ ASSERT_TRUE(CPU_ISSET_S(i, c.allocated, c.set));