cpuset_cpus_allowed_locked(9)
π cpuset_cpus_allowed_locked(9) β the "you already hold the lock, bestie" edition π
okay so real talk, this one lives in the Kernel API Manual (section 9, kernel nerd territory) and it's genuinely one of the more chill functions in the cpuset saga. no cap.
β¨ NAME β¨
cpuset_cpus_allowed_locked β literally just returns the cpus_allowed mask from a task's cpuset. that's it. that's the whole vibe. π
πΈ SYNOPSIS πΈ
void cpuset_cpus_allowed_locked (struct task_struct *tsk , struct cpumask *pmask );
π¦ ARGUMENTS π¦
tskβ pointer to atask_struct, and this is the task you're pullingcpuset->cpus_allowedfrom. like, whose mask do you want, bestie? this one. πpmaskβ pointer to astruct cpumaskvariable, and it's the lucky recipient that gets thecpus_allowedset dropped into it. main character energy for a variable, honestly. β¨
π DESCRIPTION π
so it's basically similar to cpuset_cpus_allowed β same idea, same destination β except there's one giant caveat: the caller must have already acquired cpuset_mutex. that's the whole "locked" thing in the name, iykyk. π
ngl, if you haven't grabbedcpuset_mutexbefore calling this, that's a you problem and not the fun kind. it's called_lockedfor a reason, bestie. π
π SEE ALSO π
the whole squad, fr fr β this function does not roll alone:
cpuset_lock(9)cpuset_full_lock(9)partition_is_populated(9)alloc_cpumasks(9)alloc_tmpmasks(9)free_tmpmasks(9)dup_or_alloc_cpuset(9)free_cpuset(9)cpus_excl_conflict(9)cpuset_update_tasks_cpumask(9)compute_effective_cpumask(9)compute_effective_nodemask(9)rm_siblings_excl_cpus(9)update_parent_effective_cpumask(9)compute_partition_effective_cpumask(9)update_sibling_cpumasks(9)validate_partition(9)partition_cpus_change(9)update_cpumask(9)update_exclusive_cpumask(9)cpuset_update_tasks_nodemask(9)update_prstate(9)cpuset_css_alloc(9)cpuset_init(9)cpuset_hotplug_update_tasks(9)cpuset_handle_hotplug(9)cpuset_init_smp(9)cpuset_cpus_allowed(9)cpuset_cpus_allowed_fallback(9)cpuset_mems_allowed(9)cpuset_nodemask_valid_mems_allowed(9)cpuset_nodes_allowed(9)cpuset_spread_node(9)cpuset_mem_spread_node(9)cpuset_mems_allowed_intersects(9)cpuset_print_current_mems_allowed(9)
and where does all this magic live? kernel file ./kernel/cgroup/cpuset.c, obviously. π
later bestie!! π
β¨ this lil page comes from the source ./kernel/cgroup, dated October 2026, and it's filed under cpuset_cpus_allowed_locked(9) β go forth and please hold that mutex π«Άπ
π¦ 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