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    [W:0.019 / U:91.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site