lkml.org 
[lkml]   [2009]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] IO-Controller: clear ioq wait flag if a request goes into that ioq
Vivek Goyal wrote:
...
> /*
> * Remember that we saw a request from this process, but
> @@ -1940,7 +2013,7 @@ void elv_ioq_request_add(struct request_queue *q, struct request *rq)
> * has other work pending, don't risk delaying until the
> * idle timer unplug to continue working.
> */
> - if (elv_ioq_wait_request(ioq)) {
> + if (group_wait || elv_ioq_wait_request(ioq)) {

Hi Vivek,

I guess we need to clear ioq_wait_request flags if there are requests to
go in this ioq. Otherwise, once waitting request on ioq, it will go into
this path every time when a request is enqueued.

Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
---
block/elevator-fq.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index b3c387d..201543e 100644
--- a/block/elevator-fq.c
+++ b/block/elevator-fq.c
@@ -2708,6 +2708,9 @@ void elv_ioq_request_add(struct request_queue *q, struct request *rq)
__blk_run_queue(q);
else
elv_mark_ioq_must_dispatch(ioq);
+
+ if (elv_ioq_wait_request(ioq))
+ elv_clear_ioq_wait_request(ioq);
}
} else if (elv_should_preempt(q, ioq, rq)) {
/*
--
1.5.4.rc3


\
 
 \ /
  Last update: 2009-08-20 03:49    [from the cache]
©2003-2011 Jasper Spaans