cgroup_build_tasks_procs_path(), that builds the proc path for moving
the tid, doesn't check for the cgroup type and appends cgroup.procs for
both cgroup v1/v2. With cgroup v2, this results in building a wrong
proc path if the cgroup type is threaded. This patch adds support to
check for the cgroup v2 type and build the proc path according to the
below table:
cgroup.type | proc file | Description |
----------------+----------------+------------------------------------+
domain | cgroup.procs | regular cgroup, all threads gets |
| | moved to the cgroup. |
domain threaded | cgroup.procs | root of threaded subtree, all |
| | threads gets moved to the cgroup. |
threaded | cgroup.threads | cgroup under threaded subtree, |
| | single threads with matching tid, |
| | gets moved to the cgroup. |
domain invalid | N/A | invalid state of a cgroup under the|
| | threaded subtree. |
Closes: https://github.com/libcgroup/libcgroup/issues/64 Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com> Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>