Re: [PATCH v8 2/6] cpuset: Add new v2 cpuset.sched.domain flag

From: Peter Zijlstra
Date: Fri May 25 2018 - 07:59:51 EST


On Thu, May 24, 2018 at 02:53:31PM -0400, Waiman Long wrote:
> On 05/24/2018 11:41 AM, Peter Zijlstra wrote:
> > On Thu, May 17, 2018 at 04:55:41PM -0400, Waiman Long wrote:
> >> A new cpuset.sched.domain boolean flag is added to cpuset v2. This new
> >> flag indicates that the CPUs in the current cpuset should be treated
> >> as a separate scheduling domain.
> > The traditional name for this is a partition.
>
> Do you want to call it cpuset.sched.partition? That name sounds strange
> to me.

Let me explore the whole domain x load-balance space first. I'm thinking
the two parameters are mostly redundant, but I might be overlooking
something (trivial or otherwise).

> >> + cpuset.sched.domain
> >> + A read-write single value file which exists on non-root
> >> + cpuset-enabled cgroups. It is a binary value flag that accepts
> >> + either "0" (off) or a non-zero value (on).
> > I would be conservative and only allow 0/1.
>
> I stated that because echoing other integer value like 2 into the flag
> file won't return any error. I will modify it to say just 0 and 1.

Ah, I would make the file error on >1.

Because then you can always extend the meaning afterwards because you
know it won't be written to with the new value.

> >> + 3) There is no child cgroups with cpuset enabled.
> >> +
> >> + Setting this flag will take the CPUs away from the effective
> >> + CPUs of the parent cgroup. Once it is set, this flag cannot be
> >> + cleared if there are any child cgroups with cpuset enabled.
> > This I'm not clear on. Why?
> >
> That is for pragmatic reason as it is easier to code this way. We could
> remove this restriction but that will make the code more complex.

Best to mention that I think.