add some propaganda what's so great on this approach... I personally think it is broken and confusing (see TODOs below).
what is this good for? Why the list of controllers added by cgroup_add_controller() is not used, like in cgroup_create_cgroup()? I can't crate subgroup of root group in just one hierarchy with this function!
what is ignore_ownership good for?
what is ignore_ownership good for?
what is this function good for? Why is not considered only the list of controllers attached by cgroup_add_controller()? What owners will return cgroup_get_uid_gid() if the group is in multiple hierarchies, each with different owner of tasks file?
rephrase, it's too vague... How big is the buffer actually?
libcgroup
tools, however they are fully supported and applications can benefit from them.