cpumask_next_zero(9)
π cpumask_next_zero(9) β a Kernel API Manual moment π
okay so bestie, this is the Kernel API Manual page for cpumask_next_zero, and it is exactly what it sounds like: it finds you the next unset CPU in a cpumask. she's the zero-hunting sister of cpumask_next, and honestly? iconic behavior. β¨
πΈ NAME πΈ
cpumask_next_zero β get the next unset cpu in a cpumask
like, she goes looking for a cpu that is not set. no cap. π
π¦ SYNOPSIS π¦
unsigned int cpumask_next_zero (int n , const struct cpumask *srcp );
yes the spacing is like that, do not come for her, she's been through a lot π
π ARGUMENTS π
nβ the cpu prior to the place to search (i.e. return will be >n). so she starts looking after this one. it's giving "not you, next". πsrcpβ the cpumask pointer. this is the mask she's rummaging through, okay bestie, hand it over. π«Ά
β RETURN β
>= nr_cpu_ids if no further cpus unset.
translation: if literally every cpu left in the mask is already set, she comes back with nr_cpu_ids or higher, which is your lil signal that there's nothing left to find. vibe check failed, the search is over, go home. π
real talk though β >= nr_cpu_ids is the "no more cpus unset" sentinel, so check for it before you go indexing into anything, fr fr. π₯
π SEE ALSO π
Kernel file ./include/linux/cpumask.h, plus the whole entire cpumask family reunion β she brought everyone:
cpumask_pr_args(9)cpumask_first(9)cpumask_first_zero(9)cpumask_first_and(9)cpumask_first_andnot(9)cpumask_first_and_and(9)cpumask_last(9)cpumask_next(9)cpumask_next_and(9)cpumask_next_andnot(9)cpumask_next_and_wrap(9)cpumask_next_wrap(9)cpumask_random(9)for_each_cpu(9)for_each_cpu_wrap(9)for_each_cpu_and(9)for_each_cpu_andnot(9)for_each_cpu_or(9)for_each_cpu_from(9)cpumask_any_but(9)cpumask_any_and_but(9)cpumask_any_andnot_but(9)cpumask_nth(9)cpumask_nth_and(9)cpumask_nth_and_andnot(9)cpumask_set_cpu(9)cpumask_clear_cpus(9)cpumask_clear_cpu(9)cpumask_test_cpu(9)cpumask_test_and_set_cpu(9)cpumask_test_and_clear_cpu(9)cpumask_setall(9)cpumask_clear(9)cpumask_and(9)cpumask_or(9)cpumask_weighted_or(9)cpumask_xor(9)cpumask_andnot(9)cpumask_equal(9)cpumask_or_equal(9)cpumask_intersects(9)cpumask_subset(9)cpumask_empty(9)cpumask_full(9)cpumask_weight(9)cpumask_weight_and(9)cpumask_weight_andnot(9)cpumask_shift_right(9)cpumask_shift_left(9)cpumask_copy(9)cpumask_any(9)cpumask_any_and(9)cpumask_of(9)cpumask_parse_user(9)cpumask_parselist_user(9)cpumask_parse(9)cpulist_parse(9)cpumask_size(9)alloc_cpumask_var(9)to_cpumask(9)num_online_cpus(9)cpumap_print_bitmask_to_buf(9)cpumap_print_list_to_buf(9)
like I said. everyone. the whole group chat showed up to the function. π
and that's the whole page, bestie π this lil gem lives in ./include/linux and it's dated October 2026, so yeah, future girlie came through with the docs. catch you on cpumask_next_zero(9) β mwah π«Άβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms