cpumask_nth(9)
π NAME π
cpumask_nth β bestie, this is the one that grabs the Nth cpu out of a cpumask π
(also hi, this is the cpumask_nth(9) page from the Kernel API Manual, welcome to the group chat β¨)
β¨ SYNOPSIS β¨
okay so here's the exact signature, no cap, don't let the line break jump-scare you:
unsigned int cpumask_nth (unsigned int cpu , const struct cpumask *srcp
);
π ARGUMENTS π
cpuβ the Nth cpu to find, starting from0. yes it's calledcpubut it's literally the index, starting at zero, that's just how it is πsrcpβ the cpumask pointer π«Ά the list you're digging through
π₯ RETURN π₯
it hands you back an unsigned int, and if that cpu doesn't exist? you get >= nr_cpu_ids. that's your "girl she's not here" signal π so always check it before you go indexing anything, periodt.
π¦ SEE ALSO π¦
the whole friend group lives in the kernel file ./include/linux/cpumask.h and honestly there are so many siblings, here's the full roll call π§:
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_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)
like I said. huge family. iconic behavior honestly π
ngl the only gotcha: ifcpumask_nthgives you>= nr_cpu_ids, that cpu is not in the mask. don't be delulu, check it π
okay that's the whole page bestie, love u, bye π«Ά
this cutie pie was served straight out of ./include/linux, dated October 2026, and you can cite it as cpumask_nth(9) β 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