Re: [PATCH v11 7/9] cpuset: Expose cpus.effective and mems.effective on cgroup v2 root

From: Waiman Long
Date: Thu Jul 19 2018 - 11:52:53 EST


On 07/19/2018 11:30 AM, Tejun Heo wrote:
> Hello,
>
> On Thu, Jul 19, 2018 at 10:04:54AM -0400, Waiman Long wrote:
>>> Why would a container not be allowed to create partitions for its
>>> various RT workloads?
>> As far as I understand, Tejun has some concern about the way that
>> partitioning works is inconsistent with how other resources are being
>> managed by cgroup v2 controllers. I adds an incremental patch to
>> temporarily disable the creation of partition below the first level
>> children to buy us time so that we can reach a compromise later on what
>> to do. We can always add features, but taking away features after they
>> are made available will be hard.
>>
>> I am fine either way. It is up to you and Tejun to figure out what
>> should be made available to the users.
> So, the main thing is that putting a cpu into a partition locks away
> the cpu from its ancestors. That's a system level operation which
> isn't delegatable. If we want to allow partitioning in subtrees, the
> parent still be able to take away partitioned cpus too even if that
> means ignoring descendants' configurations, which btw is exactly what
> cpuset does for non-partition configs.
>
> I don't think this would be technically too challenging to implement,
> but unless there are immediate use cases for it, we can start simpler
> & restricted.
>
> Thanks.
>
BTW, the way the partition is currently implemented right now is that a
child cannot be a partition root unless its parent is a partition root
itself. That is to avoid turning on partition to affect ancestors
further up the hierarchy than just the parent. So in the case of a
container, it cannot allocate sub-partitions underneath it unless it is
a partition itself. Will that solve your concern?

Thanks,
Longman