cgroup_add_cftypes(9)
π cgroup_add_cftypes(9) β like, the Kernel API Manual page you actually wanna read π
okay bestie, so this is the cgroup_add_cftypes page from section 9 of the Kernel API Manual, and it's lowkey a glow-up moment for your cgroup subsystem. let's get into it β¨
πΈ NAME πΈ
cgroup_add_cftypes β add an array of cftypes to a subsystem. that's it, that's the whole vibe. it's giving "here, take these files, they're yours now" π«Ά
β¨ SYNOPSIS β¨
int cgroup_add_cftypes (struct cgroup_subsys *ss , struct cftype *cfts );
like, you hand it a subsystem and an array of cftypes, and it gives you back an int. simple. iconic. no notes π
π¦ ARGUMENTS π¦
ssβ the target cgroup subsystem π you know, the one getting all the new files.cftsβ acftypearray that's terminated by a zero-length name. yes, zero-length name terminated β that's the little sentinel at the end telling everyone "we're done here, nothing more to see" π
π₯ DESCRIPTION π₯
So what actually happens? You register cfts to ss. Periodt. π
The files described by cfts get created for all existing cgroups that ss is attached to β and ngl, every single future cgroup is gonna have them too. no cap. β¨
And the best part? You can call this function anytime β whether ss is attached or not. it does not care. it's unbothered. main character energy π
β οΈ okay but read this part carefully bestie:
It returns 0 on successful registration, and -errno on failure. π That's the normal contract, love that for us.
But β and this is the part that's lowkey messy β this function currently returns 0 as long as the cfts registration was successful, even if some file creation attempts on existing cgroups fail. like, those failures just... happen and don't show up in the return value π so don't assume 0 means every single file popped into existence perfectly. it means the registration itself slayed. that's the distinction, iykyk π
π§ SEE ALSO π§
- the kernel file you'll wanna poke around in:
./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_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_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)
like yes, that's a lot of cross-references and no, i did not skip any of them, we don't do that here π πΊ
<div align="center">
π«Ά okay that's the page!! this one lives in ./kernel/cgroup, dated October 2026, and it's the cgroup_add_cftypes(9) entry from the Kernel API Manual. go forth and register your cftypes, bestie β you're gonna absolutely ate it πβ¨π
</div>
π¦ 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