css_update_populated(9)
๐
css_update_populated(9) ๐
okay bestie, this one's straight from the Kernel API Manual, and it's all about keeping the populated-state vibes accurate all the way up the cgroup family tree. no cap. ๐ณโจ
๐ธ NAME ๐ธ
css_update_populated โ update the populated state of a css and ancestors.
โจ SYNOPSIS โจ
void css_update_populated (struct cgroup_subsys_state *css , bool populated );
๐ ARGUMENTS ๐
cssโ leafcsswhose own populated count is changing. literally the leaf in question, bestie.populatedโincordec. that's the whole mood.
๐ฆ DESCRIPTION ๐ฆ
okay so picture this: one of the css_sets pinned by css is getting its first task, or it's losing the last one. that's the transition. css_update_populated() propagates that transition up the parent chain so that a css's nr_populated_children is zero iff none of its descendants contain any tasks. the math is mathing. ๐งฎ๐
For a cgroup->self walk, it also runs cgroup-side bookkeeping at each level:
- the domain/threaded child split,
- the deferred-destroy trigger,
- and notification via
"cgroup.populated"โ zero iffcgrp->selfhas neither populated csets nor populated children; userland is notified on transitions.
so yeah, it's giving "keep every ancestor's populated tea accurate" and honestly? iconic. ๐
๐ SEE ALSO ๐
Kernel file ./kernel/cgroup/cgroup.c โ plus the whole extended function fam, in order, no skips:
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_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_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)
xoxo bestie ๐ that was css_update_populated(9) from ./kernel/cgroup, stamped October 2026. slay responsibly. ๐โจ
๐ฆ 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