cgroup_calc_subtree_ss_mask(9)
๐ cgroup_calc_subtree_ss_mask(9) ๐
okay bestie so this is a page from the Kernel API Manual and it's literally all about one little function that does the math on your cgroup subsystem masks. no cap, it's short but it matters. let's get into it ๐
โจ NAME โจ
cgroup_calc_subtree_ss_mask โ calculate subtree_ss_mask
๐ธ SYNOPSIS ๐ธ
u32 cgroup_calc_subtree_ss_mask (u32 subtree_control , u32 this_ss_mask
);
yes queen, that's a u32 coming in and a u32 going out. two args, one vibe ๐ฆ
๐ ARGUMENTS ๐
subtree_controlโ the newsubtree_controlmask you're trying to consider. this is the one you wanna apply, the main character of the argument list ๐this_ss_maskโ the available subsystems. basically the guest list for the party โ only these ones are allowed in โจ
๐ง DESCRIPTION ๐ง
so listen. on the default hierarchy, a subsystem can be all "hey, I'm not going anywhere unless my friends come too" and request that other subsystems get enabled along with it โ it does this through its ->depends_on mask. super codependent, we love it ๐ซถ
because of that, the number of subsystems that end up enabled can be bigger than whatever you actually spelled out in "cgroup.subtree_control". like it's giving "you brought the whole friend group to the function" energy. ๐
so what this function does is figure out exactly which subsystems need to be enabled if subtree_control is to be applied while restricted to this_ss_mask. that's it, that's the job. it does the math so you don't have to ๐งฎโจ
๐ฅ SEE ALSO ๐ฅ
lowkey a whole syllabus down here, but every single one of these is family so here we go:
- kernel file
./kernel/cgroup/cgroup.c cgroup_ssid_enabled(9),cgroup_on_dfl(9),cgroup_e_css_by_mask(9),cgroup_e_css(9)cgroup_get_e_css(9),__cgroup_task_count(9),cgroup_task_count(9),for_each_css(9)do_each_subsys_mask(9),css_set_populated(9),css_update_populated(9),css_set_update_populated(9)css_set_move_task(9),compare_css_sets(9),find_existing_css_set(9),allocate_cgrp_cset_links(9)link_css_set(9),find_css_set(9),cgroup_file_mode(9),cgroup_kn_unlock(9)cgroup_kn_lock_live(9),css_clear_dir(9),css_populate_dir(9),cgroup_attach_lock(9)cgroup_attach_unlock(9),cgroup_migrate_add_task(9),cgroup_taskset_first(9),cgroup_taskset_next(9)cgroup_migrate_execute(9),cgroup_migrate_vet_dst(9),cgroup_migrate_finish(9),cgroup_migrate_add_src(9)cgroup_migrate_prepare_dst(9),cgroup_migrate(9),cgroup_attach_task(9),cgroup_update_dfl_csses(9)cgroup_lock_and_drain_offline(9),cgroup_save_control(9),cgroup_propagate_control(9),cgroup_restore_control(9)cgroup_apply_control_enable(9),cgroup_apply_control_disable(9),cgroup_apply_control(9),cgroup_finalize_control(9)cgroup_enable_threaded(9),cgroup_tryget_css(9),cgroup_addrm_files(9),cgroup_rm_cftypes(9)cgroup_add_cftypes(9),cgroup_add_dfl_cftypes(9),cgroup_add_legacy_cftypes(9),cgroup_file_notify(9)cgroup_file_show(9),css_next_child(9),css_next_descendant_pre(9),css_rightmost_descendant(9)css_next_descendant_post(9),css_has_online_children(9),css_task_iter_advance_css_set(9),css_task_iter_start(9)css_task_iter_next(9),css_task_iter_end(9),css_create(9),kill_css_sync(9)kill_css_finish(9),cgroup_destroy_locked(9),cgroup_init_early(9),cgroup_init(9)cgroup_fork(9),cgroup_v1v2_get_from_file(9),cgroup_get_from_file(9),cgroup_css_set_fork(9)cgroup_css_set_put_fork(9),cgroup_can_fork(9),cgroup_cancel_fork(9),cgroup_post_fork(9)cgroup_task_exit(9),css_tryget_online_from_dir(9),css_from_id(9),cgroup_get_from_path(9)cgroup_v1v2_get_from_fd(9),cgroup_get_from_fd(9),cgroup_parse_float(9)
iykyk, that's the whole cgroup cinematic universe right there ๐๐
ok that's genuinely the whole page bestie, no cap, nothing hidden. go forth and calculate those masks ๐
~mwah~ this lil page lives in ./kernel/cgroup and it's dated October 2026, so it's โจcurrentโจ โ see u in the source tree, babe ๐๐
๐ฆ 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