Hello, Peter.

On Mon, Jul 17, 2017 at 04:14:09PM +0200, Peter Zijlstra wrote:
> AFAICT this is not in fact what I suggested... :/

Heh, sorry about misattributing that.  I was mostly referring to the
overall idea of marking each cgroup domain or threaded rather than
subtree.

> My proposal did not have that invalid state. It would simply refuse to
> change the type from thread to domain in the case where the parent is
> not a domain.
> 
> Also, my proposal maintained the normal property inheritance rules. A
> child cgroup's creation 'type' would be that of its parent and not
> always be 'domain'.

But aren't both of the above get weird when the parent can host both
domain and threaded children?

         R
       / 
      A(D)

If you create another child B under R, it's naturally gonna be a
domain.  Let's say you turn that to threaded.

         R
       /   \
     A(D) B(T)

And now try to create another child C, should that be a domain or
threaded?

If we only inherit from the second level on, which is in itself
already confusing, that still leads to invalid configs for non-root
thread roots.

I don't think whether we fail the transition or put the cgroup in an
invalid state is all that material.  The simpler the better.

> Let me read more (and more careful) to see if there's other things.

Sure thing.

Thanks!

-- 
tejun

Reply via email to