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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel