cpumask_subset(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ cpumask_subset(9) ✨

okay so bestie, we're in the Kernel API Manual today and this page is literally about one tiny function that answers one iconic question: is this group of CPUs fully inside that other group of CPUs? That's it, that's the vibe. πŸ’…


πŸŽ€ NAME πŸŽ€

cpumask_subset β€” literally (*src1p & ~*src2p) == 0 β€” no cap, that's the whole definition right there 🫢


🌸 SYNOPSIS 🌸

bool cpumask_subset (const struct cpumask *src1p , const struct cpumask
       *src2p );

So it takes two const struct cpumask * pointers and hands you back a bool. Very demure, very mindful. ✨


πŸ¦‹ ARGUMENTS πŸ¦‹

  • src1p β€” the first input πŸ’– (the one we're asking about β€” is this one a subset?)
  • src2p β€” the second input πŸ’œ (the one we're comparing against β€” does this one contain it?)

⭐ RETURN ⭐

true if *src1p is a subset of *src2p, else it returns false. periodt. πŸ‘‘

So like... if every CPU in src1p is also chillin' in src2p, you get true. If src1p has even one little CPU that src2p doesn't have, it's a false and honestly? fair. πŸ™ˆ


🌈 SEE ALSO 🌈

the whole cpumask friend group, assembled. not me listing every single one 😭 but fr fr, here they are:

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_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)

also the kernel file is ./include/linux/cpumask.h β€” that's where the source lives, go say hi 🧚


okay that's the whole page!! tysm for reading, mwah πŸ’‹ β€” this one came straight out of ./include/linux, October 2026, and yes the page itself is cpumask_subset(9) because we keep it consistent, bestie πŸ“πŸ’–

πŸ“¦ where this page comes from