cpumask_test_and_clear_cpu(9)
π cpumask_test_and_clear_cpu(9) β a Kernel API Manual moment
okay so bestie, this is a page from the Kernel API Manual, and today's main character is cpumask_test_and_clear_cpu. it lives in ./include/linux/cpumask.h and honestly? she's giving one-job-and-she-does-it energy. let's get into it β¨
πΈ NAME πΈ
cpumask_test_and_clear_cpu β atomically test and clear a cpu in a cpumask π
like, she checks if the cpu is there and wipes it in one go. atomic. no take-backs, no race conditions, periodt.
β SYNOPSIS β
bool cpumask_test_and_clear_cpu (int cpu , struct cpumask *cpumask );
π¦ ARGUMENTS π¦
cpuβ the cpu number, and heads up, it has to be< nr_cpu_ids. so like, stay in bounds bestie, don't be out here indexing into the void πcpumaskβ the cpumask pointer. that's the bitmap she's gonna poke at π«Ά
π DESCRIPTION π
real talk: this is a test_and_clear_bit wrapper for cpumasks. that's it. that's the whole vibe. she wraps, she tests, she clears, she slays π
π₯ RETURN π₯
returns true if cpu is set in the old bitmap of cpumask, else it returns false.
no cap β key word is old bitmap. you're getting told what it looked like before she cleared it π
π SEE ALSO π
Kernel file ./include/linux/cpumask.h, plus the whole cpumask friend group (they're all linked, iykyk):
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_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)
π little reminder:cpumust be< nr_cpu_ids. that's not a suggestion, that's the contract. respect the bounds and nobody gets hurt π§
and that's the page!! big kisses from ./include/linux, dated October 2026, version vibes courtesy of the Kernel API Manual for cpumask_test_and_clear_cpu(9). she's iconic, she's atomic, she's out πβ¨π
π¦ 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