On 07/22/2017 09:50 AM, Tejun Heo wrote: > Hello, Waiman. > > On Fri, Jul 21, 2017 at 04:34:51PM -0400, Waiman Long wrote: >> The special prefix '#' attached to a controller name can now be written >> into the cgroup.subtree_control file to set that controller in bypass >> mode in all the child cgroups. The controller will show up in the >> children's cgroup.controllers file, but the corresponding control knobs >> will be absent. However, that controller can be enabled or bypassed >> in its children by writing to their respective subtree_control files. >> >> This mode can be useful to non-domain controllers or controllers where >> there are costs to each additional layer of hierarchy. This mode will >> also allow more freedom in how each controller can shape its effective >> hierarchy independent of each others. > While this continues to be an interesting idea. I'm still having a > bit of hard time with the change. The biggest blocks are > > * As raised a couple times before, how would this work in terms of > resource ownership and delegation? The last time we spoke about > this, I felt that we were mostly talking past each other. I think > it'd really help to think about / explain how this would work with > delegation to clarify who owns what. As said in patch 3, enabling bypass mode at subtree_control delegate the authority of enabling controllers to the children. The children own the resource control files directly. It will be more straight forward to explain if bypass mode can only be used consistently from the root down. Having a mix of regular enable and bypass down the tree will be more tricky to talk about. > * While the idea is interesting, I think we need more concrete > usecases to justify the addition and make sure that we aren't doing > something misguided. Can you please illustrate / give examples of > how this would be useful? Bypass mode targets mainly non-domain controllers and controllers that have cost associated with each additional level of hierarchy (e.g. cpu). I believe the end goal of cgroup v2 is to have all controllers migrated to it eventually. Consider the following: A / \ B C / \ / \ D E F G Controller X may want (A, B, C) to be controlled as one group with one set of control files whereas D, E, F, G will have their own control files. Controller Y may want all of them have their own control files. Bypass mode allows us to do that. With more and more controllers enabled in v2, the chance of this kind of configuration conflicts is going up. I am willing to take a more limited form of bypass mode that have to be either enabled (+) or bypass (#) only from the root down for the time being and then consider allowing their mixing later on if you think it is more acceptable to you. Cheers, Longman -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html