[PATCH] IO-Controller: clear ioq wait flag if a request goes intothat ioq

From: Gui Jianfeng
Date: Wed Aug 19 2009 - 21:47:31 EST


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@xxxxxxxxxxxxxx>
---
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/