On Tue, Aug 10, 2021 at 11:06:05PM -0400, Waiman Long wrote:I don't think that is true. A task can reside anywhere in the cgroup hierarchy. I have encountered no problem moving tasks around.
Currently, a parent partition root cannot distribute all its CPUs toThe above are already enforced by cgroup2 core, right? No intermediate
child partition roots with no CPUs left. However in some use cases,
a management application may want to create a parent partition root as
a management unit with no task associated with it and has all its CPUs
distributed to various child partition roots dynamically according to
their needs. Leaving a cpu in the parent partition root in such a case is
now a waste.
To accommodate such use cases, a parent partition root can now have
all its CPUs distributed to its child partition roots as long as:
1) it is not the top cpuset; and
2) there is no task directly associated with the parent.
Once an empty parent partition root is formed, no new task can be moved
into it.
cgroup with controllers enabled can have processes. From controllers' POV,
only leaves can have processes.