On 05/24/2017 01:56 PM, Tejun Heo wrote: > Hello, > > On Wed, May 24, 2017 at 01:49:46PM -0400, Waiman Long wrote: >> What I am saying is as follows: >> / A >> P - B >> \ C >> >> # echo +memory > P/cgroups.subtree_control >> # echo -memory > P/A/cgroup.controllers >> # echo "#memory" > P/B/cgroup.controllers >> >> The parent grants the memory controller to its children - A, B and C. >> Child A has the memory controller explicitly disabled. Child B has the >> memory controller in pass-through mode, while child C has the memory >> controller enabled by default. "echo +memory > cgroup.controllers" is >> not allowed. There are 2 possible choices with regard to the '-' or '#' >> prefixes. We can allow them before the grant from the parent or only >> after that. In the former case, the state remains dormant until after >> the grant from the parent. > Ah, I see, you want cgroup.controllers to be able to mask available > controllers by the parent. Can you expand your example with further > nesting and how #memory on cgroup.controllers would affect the nested > descendant? > > Thanks. > I would allow enabling the controller in subtree_control if granted from the parent and not explicitly disabled. IOW, both B and C can "echo +memory" to their subtree_control to grant memory controller to their children, but not A. A has to re-enable memory controller or set it to pass-through mode before it can enable it in subtree_control. I need to clarify that "echo +memory > cgroup.controllers" is allowed to re-enable it, but not without the granting from its parent. 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