From: Vivek Goyal <vgoyal@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>,
containers@lists.linux-foundation.org, cgroups@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Kay Sievers <kay.sievers@vrfy.org>,
Lennart Poettering <lennart@poettering.net>,
Frederic Weisbecker <fweisbec@gmail.com>,
linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>
Subject: Re: [RFD] cgroup: about multiple hierarchies
Date: Thu, 23 Feb 2012 14:41:10 -0500 [thread overview]
Message-ID: <20120223194109.GI19691@redhat.com> (raw)
In-Reply-To: <20120222183351.GD32694@google.com>
On Wed, Feb 22, 2012 at 10:33:51AM -0800, Tejun Heo wrote:
[..]
>
> > So for blkio controller we can convert it into fully nested hierarchy
> > at the expense of more complex code in CFQ. I think memory cgroup
> > controller provides both flat and hierarchical mode. Keeping it fully
> > hierarchical also increases the cost as we need to traverse lot more
> > pointers for simple things like nested stats. On a system having
> > both systemd and libvirt, every virtual machine is already 3-4 level
> > deep in cgroup hierarchy.
>
> I don't think every controller should implement full nesting and
> sharing the same hierarchy doesn't require it. ie. if a controller
> only wants to support flat hierarchy, just allow a single subgroup to
> be active on any path between root and leaf. We can add a flag or
> helpers to support such mode of operation and controllers themselves
> can treat all cgroups equally.
I am not sure I understand "allow a single subgroup to be active on any
path"
So if a hierarchy looks as follows.
root
/ | \
g1 g2 g3
| |
g4 g5
So you are saying that just either g2 or g4 to be active in path 2 and
similiarly allow g3 or g5 to be active. IOW, if a task is in g5 and g3
is active group, and effectively task will be considered in g3? So in
above diagram if g1 and g4 and g3 are active groups, controller will
see them as.
root
/ | \
g1 g4 g3
Did I understand it right or you meant something else. But this is still
not flat and has 2 level of hierarchy. Tasks in root group and tasks in
children group (g1, g2 and g3) are different levels hence controller needs
to implement hierarchy. For it to be truly flat, it needs to look like
this.
pivot_point
/ | \ \
g1 g4 g3 root
Now the notion that only one group is active in each path from root to
leaf does not mean much.
Considering everything internally as flat, isn't it simpler. So cgroup
tree still might look hierarchical but actually controller treats it
as.
root
/ / | \ \
g1 g2 g3 g4 g5
Well, above is not exactly flat as has 2 level of hierarchy. That's blkio
controller views cgroup hierarhcy as follows, currently.
pivot_point
/ / | \ \ \
g1 g2 g3 g4 g5 root
Thanks
Vivek
next prev parent reply other threads:[~2012-02-23 19:41 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-21 21:19 [RFD] cgroup: about multiple hierarchies Tejun Heo
2012-02-21 21:21 ` Tejun Heo
2012-02-22 13:34 ` Glauber Costa
2012-02-23 7:45 ` Serge E. Hallyn
2012-02-23 17:29 ` Tejun Heo
2012-02-23 18:47 ` Serge Hallyn
2012-02-26 4:59 ` Konstantin Khlebnikov
2012-02-22 13:30 ` Peter Zijlstra
2012-02-22 13:37 ` Glauber Costa
2012-02-22 18:01 ` Tejun Heo
2012-02-23 7:39 ` Li Zefan
2012-02-22 15:45 ` Frederic Weisbecker
2012-02-22 18:22 ` Tejun Heo
2012-02-27 17:46 ` Frederic Weisbecker
2012-02-22 16:38 ` Vivek Goyal
2012-02-22 16:57 ` Vivek Goyal
2012-02-22 18:43 ` Tejun Heo
2012-02-23 9:41 ` Peter Zijlstra
2012-02-23 14:13 ` Peter Zijlstra
2012-03-01 17:19 ` Michal Schmidt
2012-03-01 18:03 ` Peter Zijlstra
2012-03-02 11:08 ` Michal Schmidt
2012-03-02 11:23 ` Peter Zijlstra
2012-03-02 11:28 ` Michal Schmidt
2012-03-02 11:34 ` Peter Zijlstra
2012-03-01 20:26 ` Mike Galbraith
2012-03-01 21:02 ` Vivek Goyal
2012-03-01 22:04 ` Mike Galbraith
2012-03-01 22:38 ` C Anthony Risinger
2012-03-02 10:51 ` Michal Schmidt
2012-03-02 11:52 ` Mike Galbraith
2012-03-05 12:43 ` Lennart Poettering
2012-03-05 15:47 ` Mike Galbraith
2012-03-05 19:58 ` Mike Galbraith
2012-03-02 2:43 ` Kay Sievers
2012-03-02 10:15 ` Peter Zijlstra
2012-03-02 11:16 ` Michal Schmidt
2012-03-02 11:24 ` Peter Zijlstra
2012-02-23 21:38 ` Vivek Goyal
2012-02-23 22:34 ` Tejun Heo
2012-02-28 21:16 ` Vivek Goyal
2012-02-28 21:21 ` Peter Zijlstra
2012-02-28 21:35 ` Vivek Goyal
2012-02-28 21:43 ` Peter Zijlstra
2012-02-28 21:54 ` Vivek Goyal
2012-02-28 22:00 ` Peter Zijlstra
2012-02-28 22:31 ` Vivek Goyal
2012-02-28 21:53 ` Peter Zijlstra
2012-02-28 22:09 ` Vivek Goyal
2012-02-24 11:33 ` Peter Zijlstra
2012-02-22 18:33 ` Tejun Heo
2012-02-23 19:41 ` Vivek Goyal [this message]
2012-02-23 22:38 ` Tejun Heo
2012-02-23 7:59 ` Li Zefan
2012-02-23 20:32 ` Vivek Goyal
2012-02-23 8:22 ` Li Zefan
2012-02-23 17:33 ` Tejun Heo
[not found] ` <m162em2efy.fsf@fess.ebiederm.org>
2012-03-03 14:26 ` Serge Hallyn
2012-03-05 11:37 ` Lennart Poettering
2012-03-12 22:10 ` Tejun Heo
2012-03-12 22:22 ` Peter Zijlstra
2012-03-12 22:28 ` Tejun Heo
2012-03-12 22:31 ` Lennart Poettering
2012-03-12 23:00 ` Tejun Heo
2012-03-12 23:02 ` Peter Zijlstra
2012-03-12 23:09 ` Tejun Heo
2012-03-12 23:43 ` Lennart Poettering
2012-03-12 22:32 ` Peter Zijlstra
2012-03-12 22:39 ` Tejun Heo
2012-03-12 22:44 ` Peter Zijlstra
2012-03-12 23:04 ` Tejun Heo
2012-03-13 14:10 ` Vivek Goyal
2012-03-13 16:11 ` C Anthony Risinger
2012-03-13 16:30 ` C Anthony Risinger
2012-03-13 17:25 ` Peter Zijlstra
2012-03-13 17:31 ` Peter Zijlstra
2012-03-13 10:11 ` Glauber Costa
2012-03-13 14:03 ` Vivek Goyal
2012-03-13 15:59 ` Tejun Heo
2012-03-16 23:14 ` James Bottomley
2012-03-12 22:37 ` Serge Hallyn
2012-03-12 22:55 ` Tejun Heo
2012-03-13 13:49 ` Vivek Goyal
2012-03-13 16:02 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120223194109.GI19691@redhat.com \
--to=vgoyal@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=containers@lists.linux-foundation.org \
--cc=fweisbec@gmail.com \
--cc=hch@infradead.org \
--cc=kay.sievers@vrfy.org \
--cc=lennart@poettering.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).