cgroup_get_from_path(9)
π cgroup_get_from_path(9) β from the Kernel API Manual, bestie
Okay so this one's a kernel API page, and yes it's short, but it's lowkey iconic. It's literally called cgroup_get_from_path and it's about grabbing a cgroup by its path. We move. π¦
β¨ NAME β¨
cgroup_get_from_path β look up a cgroup by its path on the default hierarchy and get a reference to it. That's the whole vibe.
πΈ SYNOPSIS πΈ
struct cgroup * cgroup_get_from_path (const char *path );
π ARGUMENTS π
pathβ the path on the default hierarchy. That's it. That's the whole argument. She's simple, she's elegant. π
π DESCRIPTION π
So what happens is: it finds the cgroup at path on the default hierarchy, increments its reference count, and returns it. Like, it gets it β hence the name, no cap. π«Ά
On success you get a pointer to the found cgroup. Slay.
But if things go sideways, you get one of these instead:
ERR_PTR(-ENOENT)β returned ifpathdoesn't exist, or if the cgroup has already been released. Yeah, those are two different situations sharing one error code, and yes that's a little chaotic of them, but that's what the page says. πERR_PTR(-ENOTDIR)β returned ifpathpoints to something that is not a directory. Respectfully, not a directory, not our problem. π
ngl, check your path before you call this. The kernel will absolutely tell you what's wrong via those error pointers, but it will not be gentle about it.
π SEE ALSO π
Kernel file ./kernel/cgroup/cgroup.c, plus the whole extended friend group of cgroup and css functions β go read these next, iykyk:
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_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_v1v2_get_from_fd(9),cgroup_get_from_fd(9),cgroup_parse_float(9)
Like, that's a lot of reading. Bring snacks. π
Okay bye bestie, go increment some reference counts and remember to actually put them back π β this page lives under ./kernel/cgroup in the Kernel API Manual, dated October 2026. Periodt. π
β¨
π¦ 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