From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752033AbdFUVRF (ORCPT ); Wed, 21 Jun 2017 17:17:05 -0400 Received: from mail-yw0-f173.google.com ([209.85.161.173]:34212 "EHLO mail-yw0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751130AbdFUVRE (ORCPT ); Wed, 21 Jun 2017 17:17:04 -0400 Date: Wed, 21 Jun 2017 17:17:01 -0400 From: Tejun Heo To: Waiman Long Cc: Li Zefan , Johannes Weiner , Peter Zijlstra , Ingo Molnar , cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com, pjt@google.com, luto@amacapital.net, efault@gmx.de, torvalds@linux-foundation.org Subject: Re: [RFC PATCH-cgroup 2/6] cgroup: Enable bypass mode in cgroup v2 Message-ID: <20170621211701.GB14720@htj.duckdns.org> References: <1497452737-11125-1-git-send-email-longman@redhat.com> <1497452737-11125-3-git-send-email-longman@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1497452737-11125-3-git-send-email-longman@redhat.com> User-Agent: Mutt/1.8.2 (2017-04-18) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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