cpumask_any_and_but(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

cpumask_any_and_but β€” pick an arbitrary cpu from *mask1 & *mask2, but not this one. πŸ’…

okay so this page is cpumask_any_and_but(9) from the Kernel API Manual, and yes, we are officially in cpumask lore. 🫢

🌸 SYNOPSIS 🌸

unsigned int cpumask_any_and_but (const struct cpumask *mask1 , const struct cpumask *mask2 , int cpu );

πŸŽ€ ARGUMENTS πŸŽ€

  • mask1 β€” the first input cpumask.
  • mask2 β€” the second input cpumask.
  • cpu β€” the cpu to ignore.

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so picture this: you have two cpumasks, and you need an arbitrary cpu that is in both β€” that's the *mask1 & *mask2 vibe β€” but it also cannot be the cpu you pass in. Not that one, bestie. πŸ’€

If cpu == -1, the function is equivalent to cpumask_any_and. Slay, same behavior.

Returns >= nr_cpu_ids if no cpus set. That's the no-cpus-set case, not a real cpu id β€” just a big number. 🚩

πŸ’œ SEE ALSO πŸ’œ

The kernel file is ./include/linux/cpumask.h, and the whole related-call friend group is: 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_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).

xoxo, your cpumask bestie πŸ’– β€” source ./include/linux, dated October 2026, page cpumask_any_and_but(9). ✨

πŸ“¦ where this page comes from