From: Vivek Goyal <vgoyal@redhat.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Gui Jianfeng <guijianfeng@cn.fujitsu.com>,
Jens Axboe <axboe@kernel.dk>, Jeff Moyer <jmoyer@redhat.com>,
Divyesh Shah <dpshah@google.com>,
Corrado Zoccolo <czoccolo@gmail.com>,
Nauman Rafique <nauman@google.com>,
linux kernel mailing list <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] [PATCH] cfq-iosched: add cfq group hierarchical scheduling support
Date: Wed, 1 Sep 2010 22:29:36 -0400 [thread overview]
Message-ID: <20100902022936.GB7901@redhat.com> (raw)
In-Reply-To: <20100901180243.fe82cb61.kamezawa.hiroyu@jp.fujitsu.com>
On Wed, Sep 01, 2010 at 06:02:43PM +0900, KAMEZAWA Hiroyuki wrote:
[..]
> > > One of the possible way forward could be this.
> > >
> > > - Treat queue and group at same level (like CFS)
> > >
> > > - Get rid of cfq_slice_offset() logic. That means without idling on, there
> > > will be no ioprio difference between cfq queues. I think anyway as of
> > > today that logic helps in so little situations that I would not mind
> > > getting rid of it. Just that Jens should agree to it.
> > >
> > > - With this new scheme, it will break the existing semantics of root group
> > > being at same level as child groups. To avoid that, we can probably
> > > implement two modes (flat and hierarchical), something similar to what
> > > memory cgroup controller has done. May be one tunable in root cgroup of
> > > blkio "use_hierarchy". By default everything will be in flat mode and
> > > if user wants hiearchical control, he needs to set user_hierarchy in
> > > root group.
> > >
> > > I think memory controller provides "use_hierarchy" tunable in each
> > > cgroup. I am not sure why do we need it in each cgroup and not just
> > > in root cgroup.
> >
> > I think Kamezawa-san should be able to answer this question. :)
> >
>
> At first, please be sure that "hierarchical accounting is _very_ slow".
> Please measure how hierarchical accounting (of 4-6 levels) are slow ;)
>
> Then, there are 2 use cases.
>
> 1) root/to/some/directory/A
> /B
> /C
> ....
> All A, B, C ....are flat cgroup and has no relationship, not sharing limit.
> In this case, hierarchy should not be enabled.
>
> 2) root/to/some/directory/Gold/A,B,C...
> Silver/D,E,F
>
> All A, B, C ....are limited by "Gold" or "Silver".
> But Gold and Silver has no relationthip, they has their own limitations.
> But A, B, C, D, E, F shares limit under Gold or Silver.
> In this case, hierarchy
> "root/to/some/directory" should be disabled.
> Gold/ and Silver should have use_hierarchy=1.
>
> (Assume these Gold and Silver as Container and the user of container
> divides memory into A and B, C...)
>
> For example, libvirt makes very long "root/to/some/directory" ...
> I never want to count-up all counters in the hierarchy even if
> we'd like to use some fantasic hierarchical accounting under a container.
>
> I don't like "all or nothing" option (as making use_hierarchy as mount
> option or has parameter on root cgroup etc..) Then, allowed mixture.
Hi Kame San,
If you don't want any relationship between Gold and Silver then one can
make root as unlimited group (limit_in_bytes = -1) and practically Gold
and Silver have no dependency. There is no need of setting use_hierarchy
different at root level and inside Gold/ and Silver/ groups?
It sounds like you did it for two reasons.
- It can potentially provide more flexibility.
- performance reason so that you can stop do hierarchical accounting
all the way to root and stop before that (libvirt example).
I think for blkio controller we can probably begin with either a mount
time option or a use_hierachy file in root group and then later make
it per group if there are use cases.
Vivek
next prev parent reply other threads:[~2010-09-02 2:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-30 6:50 [RFC] [PATCH] cfq-iosched: add cfq group hierarchical scheduling support Gui Jianfeng
2010-08-30 18:20 ` Chad Talbott
2010-08-31 0:35 ` Gui Jianfeng
2010-08-30 20:36 ` Vivek Goyal
2010-08-31 0:29 ` Gui Jianfeng
2010-08-31 12:57 ` Vivek Goyal
2010-08-31 15:40 ` Nauman Rafique
2010-08-31 19:25 ` Vivek Goyal
2010-09-01 8:50 ` Gui Jianfeng
2010-09-01 15:49 ` Nauman Rafique
2010-09-01 17:10 ` Vivek Goyal
2010-09-01 17:15 ` Nauman Rafique
2010-09-01 17:21 ` Vivek Goyal
2010-09-02 0:30 ` Gui Jianfeng
2010-09-02 2:20 ` Vivek Goyal
2010-09-01 8:48 ` Gui Jianfeng
2010-09-01 9:02 ` KAMEZAWA Hiroyuki
2010-09-02 2:29 ` Vivek Goyal [this message]
2010-09-02 2:42 ` KAMEZAWA Hiroyuki
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=20100902022936.GB7901@redhat.com \
--to=vgoyal@redhat.com \
--cc=axboe@kernel.dk \
--cc=czoccolo@gmail.com \
--cc=dpshah@google.com \
--cc=guijianfeng@cn.fujitsu.com \
--cc=jmoyer@redhat.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nauman@google.com \
/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