Re: [RFC PATCH-cgroup 2/6] cgroup: Enable bypass mode in cgroup v2

From: Tejun Heo
Date: Wed Jun 21 2017 - 17:17:08 EST


Hello, Waiman.

Let's first talk about and make sense of high level semantics.

On Wed, Jun 14, 2017 at 11:05:33AM -0400, Waiman Long wrote:
> +In the example below, '+' corresponds to an enabled controller and
> +corresponds to a bypassed controller.
> +
> + + # # # +
> + A - B - C - D - E
> + \ F
> + +
> +In this case, the effective hiearchy is:
> +
> + A|B|C|D - E
> + \ F

I think that this definitely has potential. While different
controllers may see differently abbreviated versions of the tree, they
can still be mapped to the same hierarchy and we can implement
cross-controller operations in a meaningful way, I think; however, it
does make some things really weird.

In the above example, how would A's resources be distributed. Let's
say the resource knob in question is memory.high. Because from memory
controller's point of view A|B|C|D are all bunched up and have E and F
as children, memory.high resource knobs on E and F would control how
A's memory gets distributed, right?

So, once a parent skips a controller with #, you can only determine
how its resources are actually distributed by scanning the entire
subtree to determine the span of '#' on the controller and any sort of
delegation - whether implicit or explicit - wouldn't be possible in
the middle, right?

Can you please think of / explain how this would work with delegation?
Making things clear with delegation is really helpful because it can
serve as the canary for the usual hierarchical operations.

Thanks.

--
tejun