LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@redhat.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: linux-kernel@vger.kernel.org,
	containers@lists.linux-foundation.org,
	virtualization@lists.linux-foundation.org, jens.axboe@oracle.com,
	Hirokazu Takahashi <taka@valinux.co.jp>,
	Ryo Tsuruta <ryov@valinux.co.jp>,
	Andrea Righi <righi.andrea@gmail.com>,
	Satoshi UCHIDA <s-uchida@ap.jp.nec.com>,
	Rik van Riel <riel@redhat.com>,
	fernando@oss.ntt.co.jp, Jeff Moyer <jmoyer@redhat.com>,
	menage@google.com, ngupta@google.com,
	Andrew Morton <akpm@linux-foundation.org>,
	balbir@linux.vnet.ibm.com
Subject: Re: [patch 1/4] io controller: documentation
Date: Fri, 7 Nov 2008 09:27:15 -0500	[thread overview]
Message-ID: <20081107142715.GD21884@redhat.com> (raw)
In-Reply-To: <20081107113209.a6011c67.kamezawa.hiroyu@jp.fujitsu.com>

On Fri, Nov 07, 2008 at 11:32:09AM +0900, KAMEZAWA Hiroyuki wrote:
> On Thu, 06 Nov 2008 10:30:23 -0500
> vgoyal@redhat.com wrote:
> > +ISSUES
> > +======
> > +- IO controller can buffer the bios if suffcient tokens were not available
> > +  at the time of bio submission. Once the tokens are available, these bios
> > +  are dispatched to elevator/lower layers in first come first serve manner.
> > +  And this has potential to break CFQ where a RT tasks should be able to
> > +  dispatch the bio first or a high priority task should be able to release
> > +  more bio as compared to low priority task in same cgroup.
> > +
> > +  Not sure how to fix it. May be we need to maintain another rb-tree and
> > +  keep track of RT tasks and tasks priorities and dispatch accordingly. This
> > +  is equivalent of duplicating lots of CFQ logic and not sure how would it
> > +  impact AS behaviour.
> > 
> Why you don't isolate RT tasks into other cgroup ?
>    /cgroup/bio-cgroup/group_for_usual/...usual tasks.
>                      /group_for_RT/ ...RT tasks. you can use high-speed path.
> 
> How about adding RT flag to bio-cgroup and skip buffering at bio-cgroup if RT
> flag is set ? I think handling an usual process and RT process in "a" cgroup
> just makes the code complex.
> 
> Looking into a cpu-scheduler, which is the first module handling RT, it has
> some tweaks to handle RT in the system.
>  - special RT scheduler.
>  - isolated RT domain
>  - maximum execution time allowed to RT
>  ....
> 
> Maybe handling RT in following way is usual way...(if we do something in this layer)
> 
>   - Allow RT-bio-cgroup to skip limit check.
>   - But RT-bio-cgroup calculates io-throuput, execution time, statistics...
>   - When RT tasks in RT-bio-cgroup does excessive I/O which starves the whole system
>     too long, raise safeguard-limitter. and tell users Warning or kill it.
> 
> Hmm ?

Hi Kame,

Looking at CFQ, there are two issues.

- RT tasks (and RT priorities with in that)
- Best Effort class tasks (and priorities with in that).

To make sure we don't break underlying CFQ elevator, we need to take care of 
both the things in higher level scheduler. This will mean practically we
will end up copying code from CFQ in higher level scheduler.

Even if I do that (Keep track of RT tasks and Best effort class tasks and 
their proirities and do dispatch accordingly), I am not sure will it have
any negative impact when a user is using AS IO scheduler on the leaf node.

That forces me to think that if we can let go the idea of doing
proportionate bandwidth allocation at higher level logical device and just
do it for leaf nodes, then we can drop the idea of two level scheduler and
try to bring unification among four IO schedulers such that with least 
code copying they can also support proportional weight policies.

Thanks
Vivek

  reply	other threads:[~2008-11-07 14:27 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-06 15:30 [patch 0/4] [RFC] Another proportional weight IO controller vgoyal
2008-11-06 15:30 ` [patch 1/4] io controller: documentation vgoyal
2008-11-07  2:32   ` KAMEZAWA Hiroyuki
2008-11-07 14:27     ` Vivek Goyal [this message]
2008-11-10  2:48   ` Li Zefan
2008-11-10 13:44     ` Vivek Goyal
2008-11-06 15:30 ` [patch 2/4] io controller: biocgroup implementation vgoyal
2008-11-07  2:50   ` KAMEZAWA Hiroyuki
2008-11-07  4:19     ` Hirokazu Takahashi
2008-11-07 14:44     ` Vivek Goyal
2008-11-06 15:30 ` [patch 3/4] io controller: Core IO controller implementation logic vgoyal
2008-11-07  3:21   ` KAMEZAWA Hiroyuki
2008-11-07 14:50     ` Vivek Goyal
2008-11-08  2:35       ` [patch 3/4] io controller: Core IO controller implementationlogic KAMEZAWA Hiroyuki
2008-11-11  8:50   ` [patch 3/4] io controller: Core IO controller implementation logic Gui Jianfeng
2008-11-06 15:30 ` [patch 4/4] io controller: Put IO controller to use in device mapper and standard make_request() function vgoyal
2008-11-06 15:49 ` [patch 0/4] [RFC] Another proportional weight IO controller Peter Zijlstra
2008-11-06 16:01   ` Vivek Goyal
2008-11-06 16:16     ` Peter Zijlstra
2008-11-06 16:39       ` Vivek Goyal
2008-11-06 16:52         ` Peter Zijlstra
2008-11-06 16:57           ` Rik van Riel
2008-11-06 17:11             ` Peter Zijlstra
2008-11-07  0:41               ` Dave Chinner
2008-11-07 10:31                 ` Peter Zijlstra
2008-11-09  9:40                   ` Dave Chinner
2008-11-06 17:08           ` Vivek Goyal
2008-11-06 23:07             ` Nauman Rafique
2008-11-07 14:19               ` Vivek Goyal
2008-11-07 21:36                 ` Nauman Rafique
2008-11-10 14:11                   ` Vivek Goyal
2008-11-11 19:55                     ` Nauman Rafique
2008-11-11 22:30                       ` Vivek Goyal
2008-11-12 21:20                         ` Nauman Rafique
2008-11-13 13:49                           ` Fabio Checconi
2008-11-13 18:08                           ` Vivek Goyal
2008-11-13 19:15                             ` Fabio Checconi
2008-11-13 22:27                               ` Nauman Rafique
2008-11-13 23:10                                 ` Fabio Checconi
2008-11-14  4:58                             ` Satoshi UCHIDA
2008-11-14  8:02                               ` Peter Zijlstra
2008-11-14 10:06                                 ` Satoshi UCHIDA
2008-11-06 16:47       ` Rik van Riel
2008-11-07  2:36 ` Gui Jianfeng
2008-11-07 13:38   ` Vivek Goyal
2008-11-13  9:05 ` Ryo Tsuruta
2008-11-13 15:58   ` Vivek Goyal
2008-11-13 18:41     ` Divyesh Shah
2008-11-13 21:46       ` Vivek Goyal
2008-11-13 22:57         ` Divyesh Shah
2008-11-14 16:05           ` Vivek Goyal
2008-11-14 22:44             ` Nauman Rafique
2008-11-17 14:23               ` Vivek Goyal
2008-11-18  2:02                 ` Li Zefan
2008-11-18  5:01                   ` Nauman Rafique
2008-11-18  7:42                     ` Li Zefan
2008-11-18 22:23                       ` Nauman Rafique
2008-11-18 12:05                     ` Fabio Checconi
2008-11-18 14:07                       ` Vivek Goyal
2008-11-18 14:41                         ` Fabio Checconi
2008-11-18 19:12                           ` Jens Axboe
2008-11-18 19:47                             ` Vivek Goyal
2008-11-18 21:14                             ` Fabio Checconi
2008-11-19  1:52                               ` Aaron Carroll
2008-11-19 10:17                                 ` Fabio Checconi
2008-11-19 11:06                                   ` Fabio Checconi
2008-11-20  4:45                                     ` Aaron Carroll
2008-11-20  6:56                                       ` Fabio Checconi
2008-11-19 14:30                               ` Jens Axboe
2008-11-19 15:52                                 ` Fabio Checconi
2008-11-18 23:07                             ` Nauman Rafique
2008-11-19 14:24                               ` Jens Axboe
2008-11-20  0:12                                 ` Divyesh Shah
2008-11-20  8:16                                   ` Jens Axboe
2008-11-20 13:40                                     ` Vivek Goyal
2008-11-20 19:54                                       ` Nauman Rafique
2008-11-20 21:15                                         ` Vivek Goyal
2008-11-20 22:42                                           ` Nauman Rafique
2008-11-21 15:22                                             ` Vivek Goyal
2008-11-26  6:40                                       ` Fernando Luis Vázquez Cao
2008-11-26 15:18                                         ` Vivek Goyal
2008-11-20 21:31                           ` Vivek Goyal
2008-11-21  3:05                             ` Fabio Checconi
2008-11-21 14:58                               ` Vivek Goyal
2008-11-21 15:21                                 ` Fabio Checconi
2008-11-18 22:33                       ` Nauman Rafique
2008-11-18 23:44                         ` Fabio Checconi
2008-11-19  7:09                         ` Paolo Valente
2008-11-13 22:13     ` Vivek Goyal
2008-11-20  9:20       ` Ryo Tsuruta
2008-11-20 13:47         ` Vivek Goyal
2008-11-25  2:33           ` Ryo Tsuruta
2008-11-25 16:27             ` Vivek Goyal
2008-11-25 22:38               ` Nauman Rafique
2008-11-26 14:06                 ` Paolo Valente
2008-11-26 19:41                   ` Nauman Rafique
2008-11-26 22:21                     ` Fabio Checconi
2008-11-26 11:55               ` Fernando Luis Vázquez Cao
2008-11-26 12:47               ` Ryo Tsuruta
2008-11-26 16:08                 ` Vivek Goyal
2008-11-27  8:43                   ` Fernando Luis Vázquez Cao
2008-11-28  3:09                     ` Ryo Tsuruta
2008-11-28 13:33                   ` Ryo Tsuruta

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=20081107142715.GD21884@redhat.com \
    --to=vgoyal@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=fernando@oss.ntt.co.jp \
    --cc=jens.axboe@oracle.com \
    --cc=jmoyer@redhat.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=menage@google.com \
    --cc=ngupta@google.com \
    --cc=riel@redhat.com \
    --cc=righi.andrea@gmail.com \
    --cc=ryov@valinux.co.jp \
    --cc=s-uchida@ap.jp.nec.com \
    --cc=taka@valinux.co.jp \
    --cc=virtualization@lists.linux-foundation.org \
    --subject='Re: [patch 1/4] io controller: documentation' \
    /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

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).