public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: linux-kernel@vger.kernel.org, jens.axboe@oracle.com,
	nauman@google.com, dpshah@google.com, lizf@cn.fujitsu.com,
	ryov@valinux.co.jp, fernando@oss.ntt.co.jp,
	s-uchida@ap.jp.nec.com, taka@valinux.co.jp, jmoyer@redhat.com,
	balbir@linux.vnet.ibm.com, righi.andrea@gmail.com,
	m-ikeda@ds.jp.nec.com, akpm@linux-foundation.org,
	riel@redhat.com, kamezawa.hiroyu@jp.fujitsu.com,
	czoccolo@gmail.com
Subject: Re: [RFC] Block IO Controller V3
Date: Mon, 30 Nov 2009 15:29:52 +0800	[thread overview]
Message-ID: <4B137470.3000601@cn.fujitsu.com> (raw)
In-Reply-To: <1258134015-21632-1-git-send-email-vgoyal@redhat.com>

Vivek Goyal wrote:
> Hi Jens,
> 
> This is V3 of the Block IO controller patches on top of "for-2.6.33" branch
> of block tree.
> 
...

Hi Vivek,

If an idle task is running group A and a normal task is running in group B, these
two group have the same weight, I think IO Controller should isolate group A and
group B, these two group should get 50% of the IO bw for each, right? But for this case,
we don't see any isolation, instead, group B monopolizes almost all IO BW. I guess
the major reason is idle cfqq is only allowed to dispatch one request and get expired.
I think in order to get better isolation, we shouldn't expire the idle cfqq immediately
if this idle queue is the only one this its group. The following patch enable idling
for idle queue and prevent expiring it immediately after dispatch one request if it's 
the only one in group. This patch is working for V3, hasn't tested on V4 yet.

Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
---
 block/cfq-iosched.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 6f9d019..3440837 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -900,7 +900,7 @@ static bool cfq_should_idle(struct cfq_data *cfqd, struct cfq_queue *cfqq)
 	struct cfq_rb_root *service_tree = cfqq->service_tree;
 
 	/* We never do for idle class queues. */
-	if (prio == IDLE_WORKLOAD)
+	if (prio == IDLE_WORKLOAD && cfqq->cfqg->nr_cfqq > 1)
 		return false;
 
 	/* We do for queues that were marked with idle window flag. */
@@ -2336,7 +2336,7 @@ static int cfq_dispatch_requests(struct request_queue *q, int force)
 	 * expire an async queue immediately if it has used up its slice. idle
 	 * queue always expire after 1 dispatch round.
 	 */
-	if (cfqd->busy_queues > 1 && ((!cfq_cfqq_sync(cfqq) &&
+	if (cfqq->cfqg->nr_cfqq  > 1 && ((!cfq_cfqq_sync(cfqq) &&
 	    cfqq->slice_dispatch >= cfq_prio_to_maxrq(cfqd, cfqq)) ||
 	    cfq_class_idle(cfqq))) {
 		cfqq->slice_end = jiffies + 1;
-- 
1.5.4.rc3

-- 
Regards
Gui Jianfeng


  parent reply	other threads:[~2009-11-30  7:33 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-13 17:39 [RFC] Block IO Controller V3 Vivek Goyal
2009-11-13 17:40 ` [PATCH 01/16] blkio: Introduce the notion of cfq groups Vivek Goyal
2009-11-13 17:40 ` [PATCH 02/16] blkio: Keep queue on service tree until we expire it Vivek Goyal
2009-11-17 18:07   ` Alan D. Brunelle
2009-11-13 17:40 ` [PATCH 03/16] blkio: Introduce the root service tree for cfq groups Vivek Goyal
2009-11-13 17:40 ` [PATCH 04/16] blkio: Implement per cfq group latency target and busy queue avg Vivek Goyal
2009-11-16 13:05   ` Vivek Goyal
2009-11-13 17:40 ` [PATCH 05/16] blkio: Introduce blkio controller cgroup interface Vivek Goyal
2009-11-13 17:40 ` [PATCH 06/16] blkio: Introduce per cfq group weights and vdisktime calculations Vivek Goyal
2009-11-17 18:07   ` Alan D. Brunelle
2009-11-13 17:40 ` [PATCH 07/16] blkio: Group time used accounting and workload context save restore Vivek Goyal
2009-11-13 17:40 ` [PATCH 08/16] blkio: Dynamic cfq group creation based on cgroup tasks belongs to Vivek Goyal
2009-11-17 18:07   ` Alan D. Brunelle
2009-11-13 17:40 ` [PATCH 09/16] blkio: Take care of cgroup deletion and cfq group reference counting Vivek Goyal
2009-11-13 17:40 ` [PATCH 10/16] blkio: Some debugging aids for CFQ Vivek Goyal
2009-11-13 17:40 ` [PATCH 11/16] blkio: Export disk time and sectors used by a group to user space Vivek Goyal
2009-11-13 17:40 ` [PATCH 12/16] blkio: Provide some isolation between groups Vivek Goyal
2009-11-13 17:40 ` [PATCH 13/16] blkio: Drop the reference to queue once the task changes cgroup Vivek Goyal
2009-11-13 17:40 ` [PATCH 14/16] blkio: Propagate cgroup weight updation to cfq groups Vivek Goyal
2009-11-13 17:40 ` [PATCH 15/16] blkio: Idle on a group for some time on rotational media Vivek Goyal
2009-11-13 17:40 ` [PATCH 16/16] blkio: Documentation Vivek Goyal
2009-11-17 18:07   ` Alan D. Brunelle
2009-11-30  7:29 ` Gui Jianfeng [this message]
2009-11-30 17:13   ` [RFC] Block IO Controller V3 Vivek Goyal
2009-12-01  2:59     ` Gui Jianfeng

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=4B137470.3000601@cn.fujitsu.com \
    --to=guijianfeng@cn.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=czoccolo@gmail.com \
    --cc=dpshah@google.com \
    --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=lizf@cn.fujitsu.com \
    --cc=m-ikeda@ds.jp.nec.com \
    --cc=nauman@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=vgoyal@redhat.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