On 8/11/21 2:08 PM, Tejun Heo wrote:
Hello,
On Tue, Aug 10, 2021 at 11:06:03PM -0400, Waiman Long wrote:
For a partition root tree with parent and child partition roots, this
patch will now prohibit changing parent partition root back to member
as changes to "cpuset.cpus.partition" should not cause those child
partition roots to become invalid.
So, the general rule is that a descendant should never be able to affect or
restrict what an ancestor can do in terms of configuration. This is because
descendant cgroups can be delegated and a system manager sitting at a higher
level in the hierarchy may not have much control over what happens under
delegated subtrees.
Given that we're promoting the error state as the first class citizen in the
interface anyway, wouldn't it be better to keep this in line too?
Disabling partition at the parent level does invalidate all the child
partitions under it. So it must be done with care when we disable a
partition.
How about we give some indication that a child partition exist when
reading cpuset.cpus.partition and recommend double-checking it before
disabling a partition? For example, we keep track of the number of cpus
delegated to child partitions. Perhaps we can list that information on read.
With that information available, I have no objection to allow disabling
a parent partition with child partitions under it.
Cheers,
Longman