On Mon, Jun 13, 2022 at 07:28:25AM -1000, Tejun Heo tj@kernel.org wrote:
I see. Is this part even necessary? All the .cpus files of the siblings are owned by the parent who's responsible for configuring both the mode that the cgroup subtree is gonna be in and their cpumasks.
Do you mean such an example:
parent cpuset.cpus=SET (root) cpuset.cpus.partition=isolated `- child_1 cpuset.cpus=partition_of(SET) (root) cpuset.cpus.partition=isolated `- ... `- child_n cpuset.cpus=partition_of(SET) (root) cpuset.cpus.partition=isolated ?
I don't think child_*/cpuset.cpus must be owned by root. Actually, the root would only configure the parent, i.e. parent/cpuset.cpus (whose changes would be disallowed to the unprivileged tasks) and the distribution among siblings would up to the whatever runs below.
Given that all the other errors it can make are notified through "invalid (REASON)" in the mode file, wouldn't it fit better to notify cpus configuration error the same way too?
Do you suggest that a write into child_*/cpuset.cpus that'd not be exclusive wrt a sibling would result in an error string in parent/cpuset.cpus.partition?
Thanks, Michal