Re: [PATCH 5/6] cgroup: implement cgroup v2 thread support

From: Tejun Heo
Date: Mon Jul 17 2017 - 10:26:20 EST


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