On 8/11/21 2:13 PM, Tejun Heo wrote:
On Tue, Aug 10, 2021 at 11:06:05PM -0400, Waiman Long wrote:
Currently, a parent partition root cannot distribute all its CPUs to 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:
- it is not the top cpuset; and
- 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.
The above are already enforced by cgroup2 core, right? No intermediate cgroup with controllers enabled can have processes. From controllers' POV, only leaves can have processes.
I don't think that is true. A task can reside anywhere in the cgroup hierarchy. I have encountered no problem moving tasks around.
Cheers, Longman