cpumask_any(9)
π cpumask_any(9) β like, the Kernel API Manual page, bestie β¨
okay so real talk, this is a page from the Kernel API Manual and it's genuinely so simple you're gonna be obsessed. it's cpumask_any and it does exactly one thing but it does it flawlessly. no notes. π
β¨ NAME β¨
cpumask_any β pick an arbitrary cpu from *srcp
like... any cpu. whoever shows up. it's giving "you get a cpu, you get a cpu" energy π¦
πΈ SYNOPSIS πΈ
cpumask_any (srcp );
literally that's it. that's the whole vibe check. π
π ARGUMENTS π
srcpβ the input cpumask π this is the little squad of cpus you're handing over, and the function is gonna pick one out of the group. no cap.
π¦ RETURN π¦
returns >= nr_cpu_ids if no cpus set. π
bestie please hear me on this one: if your mask is empty (nobody's home, zero cpus set), you don't get a cpu, you get a value that's >= nr_cpu_ids β so like, always check, okay? don't just assume you got a valid cpu back. π
π SEE ALSO π
okay this is the part where the page goes absolutely feral with the cross-references, and honestly? iconic. the source file is ./include/linux/cpumask.h and here is the entire friend group, not one of them skipped, periodt π
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_zero(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_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)
iykyk π
and that's the whole page, bestie β go pick a cpu, slay, and remember: empty mask means no cpu for you π€π«Ά
with love from ./include/linux Β· October 2026 Β· the cpumask_any(9) girlies π
β¨
π¦ 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