Hello, On Thu, Jun 30, 2022 at 04:32:11PM +0200, Michal Koutný wrote: > file owner > parent/ user (mkdir) > `- cpuset.cpus root > `- cpuset.cpus.partition root (P) > `- child_1/ user > ` cpuset.cpus user (*) > `- child_2/ user > ` cpuset.cpus user (*) > > The writes to child cpuset.cpus may/may not invalidate parent's (P) > partition validity (whether a cpu is left to it to host possible tasks). > child_1 vs child_2 overlap affects only whether the children cgroups are > a valid partition. > > I think you mean: writes to children cpuset.cpus should be allowed, > possible exclusivity violation should be reported in > parent/cpuset.cpus.partition. I see. > What I thought was OK: prevent (fail) writes to children cpuset.cpus > that'd violate the exclusivity (or would take the last cpu from parent > if it's necessary to host a task). > IMO, it's similar to failed writes to parent/cgroup.subtree_control in a > delegated subtree if the parent still has some tasks (that'd violate > internal node constraint). > > What I think might still be OK: allow writes to children cpuset.cpus > that violate exclusivity and report that in children's > cpuset.cpus.partition. Writes that'd take last cpu from parent should > still fail (similar to the failing subtree_control writes above). Yeah, this one. So, here, one important question is who owns cpuset.cpus.partition file - is it a konb which is owned by the parent like other resource control knobs including cpuset.cpus or is it a knob which is owned by the cgroup itself for selecting its own operation like cgroup.procs or cgroup.subtree_control. In the former case, the parent being able to say that "my children can't overlap" makes sense although I'm not a big fan of the current interface (again, who owns that knob?). In the latter case, it doesn't really make sense cuz it'd be declaring "I can't make my children overlap" - well, then, don't. Thanks. -- tejun