for_each_css(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ for_each_css β€” Kernel API Manual ✨

okay so bestie, welcome to the for_each_css(9) page πŸ’… this is one of those little kernel API manual moments, and honestly? it's giving "small function, big responsibilities." let's get into it 🫢


🌸 NAME 🌸

for_each_css β€” iterate all css's of a cgroup

like, all of them. every single one. no skipping, no cap πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

for_each_css (css , ssid , cgrp );

that's the whole vibe. three args, one macro-ish situation, zero drama ✨


πŸŽ€ ARGUMENTS πŸŽ€

  • css β€” the iteration cursor. she's the little pointer that keeps track of where you are in the walk, main character energy fr πŸ‘‘
  • ssid β€” the index of the subsystem, and it's CGROUP_SUBSYS_COUNT after reaching the end 🌈 (so yes, when you see that value, you've hit the finish line, congrats)
  • cgrp β€” the target cgroup to iterate css's of. this is the group you're strolling through πŸšΆβ€β™€οΈ

πŸ’œ DESCRIPTION πŸ’œ

so here's the whole thing: this walks every css of a cgroup for you. cute, right?

⚠️ Should be called under cgroup_mutex. like, this is not optional, bestie. hold the mutex. i'm literally begging πŸ™ do not raw-dog this call without the lock, iykyk πŸ’€

πŸ”₯ SEE ALSO πŸ”₯

the whole friend group shows up here, no cap. kernel file ./kernel/cgroup/cgroup.c and honestly the entire group chat:

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), 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_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)

that's a lot of besties, but they all ate πŸ’…βœ¨


and that's the page, bestie! πŸŽ€ sign-off time: this little icon lives in ./kernel/cgroup, and she's stamped October 2026 β€” mark your calendars, she's not going anywhere πŸŒΈπŸ¦‹πŸ’– periodt.

πŸ“¦ where this page comes from