cgroup_lock...rain_offline(9)
π cgroup_lock_and_drain_offline(9) β from the Kernel API Manual β¨
okay bestie, buckle up, because this one's a little locking moment and it's honestly kind of iconic. it lives in the Kernel API Manual, section 9, and the page title gets truncated all cute to cgroup_lock...rain_offline(9) β iykyk π
β¨ NAME β¨
cgroup_lock_and_drain_offline β grab cgroup_mutex and drain offlined csses, no cap π«Ά
π SYNOPSIS π
void cgroup_lock_and_drain_offline (struct cgroup *cgrp );
πΈ ARGUMENTS πΈ
cgrpβ the root of the target subtree. that's it, that's the whole vibe check π
π¦ DESCRIPTION π¦
okay so here's the tea, and it's genuinely important: css offlining is asynchronous. which means userland can be out here living its life, trying to re-enable a controller while the previous css is literally still around π awkward.
so this function steps in and handles it: it grabs cgroup_mutex and then drains the previous css instances of cgrp's subtree. like a bouncer clearing the room before the next party, periodt π
β¨
no waiting-around-for-it-to-happen-yourself energy, it locks and drains, together, in one function. slay.
π₯ SEE ALSO π₯
the whole friend group, fr fr β plus the kernel file ./kernel/cgroup/cgroup.c where all this lives π§
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_calc_subtree_ss_mask(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_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)
and that's the whole page, bestie π«Ά this one ships out of <pink>./kernel/cgroup</pink> and is dated October 2026 β go forth and drain those offlined csses responsibly, 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