cpumask_any_and(9)
π cpumask_any_and (kernel API manual, bestie edition)
okay so picture this: you're deep in the kernel, you've got two cpumasks, and you need literally any cpu that's in both of them. not the first one, not the last one, not a specific one β just. any. and that's exactly what this icon does β¨ it's giving intersection energy, fr fr.
πΈ NAME πΈ
cpumask_any_and β pick an arbitrary cpu from *mask1 & *mask2 π―
like yes bestie, it's the "any" girlie of the cpumask family, but she's doing it and-style. no cap.
π SYNOPSIS π
cpumask_any_and (mask1 , mask2 );
(and yes the spacing is exactly like that, don't come for me, that's just how the page is printed π)
π¦ ARGUMENTS π¦
mask1β the first input cpumask. one half of the situationship πmask2β the second input cpumask. the other half π«Ά
the two of them get ANDed together, and we pick an arbitrary cpu out of that intersection. slay.
π₯ RETURN π₯
>= nr_cpu_ids if no cpus set.
β οΈ okay so this is the part where you pay attention bestie: if the intersection is empty, you don't get a valid cpu β you get something >= nr_cpu_ids. that's the "no cpus set" signal. literally do not treat it as a cpu id. check it. periodt. π
π SEE ALSO π
so this is the part where the page just. lists everyone. and I mean everyone. it's giving group chat with 61 members and honestly? iconic. all of them live in the kernel file ./include/linux/cpumask.h π
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(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 π go read some of them, they're all lowkey great.
that's the whole page bestie, no notes. this one came straight out of the ./include/linux directory, October 2026 edition β so like, reasonably fresh π catch you in the next manpage, 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