On 6/12/22 13:49, Tejun Heo wrote:
Hello,
On Tue, May 10, 2022 at 11:34:12AM -0400, Waiman Long wrote:
- External events like hotplug or changes to "cpuset.cpus" can
- cause a valid partition root to become invalid and vice versa.
- Note that a task cannot be moved to a cgroup with empty
- "cpuset.cpus.effective".
- For a valid partition root or an invalid partition root with
- the exclusivity rule enabled, changes made to "cpuset.cpus"
- that violate the exclusivity rule will not be allowed.
My memory is failing but this is the same thing that we were discussing before, right? The point was that the different behaviors re. system events and config actions seemed unncessary and IIRC Michal was of the same opinion (please correct me if I'm misremembering).
That is the behavior enforced by setting the CPU_EXCLUSIVE bit in cgroup v1. I haven't explicitly change it to make it different in cgroup v2. The major reason is that I don't want change to one cpuset to affect a sibling partition as it may make the code more complicate to validate if a partition is valid.
- A valid non-root parent partition may distribute out all its CPUs
- to its child partitions when there is no task associated with it.
I'm probably forgetting something. Was this necessary because of threaded cgroup support because otherwise the above condition is superflous?
The top cpuset cannot have empty cpus.effective whereas the non-root partition roots can. Maybe I should reword it to make it more clear.
Thanks, Longman