[lkml]   [2009]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 19/20] blkio: Arm slice timer even if there are requests in driver
    o To ensure fairness for a group, we need to make sure at the time of expiry
    queue is backlogged and does not get deleted from the service tree. That
    means for sequential workload, wait for next request before expiry.

    o Sometimes we dispatch a request from a queue and we do not wait busy on the
    queue because arm_slice_timer() does not arm slice idle timer because it
    thinks there are requests in driver. Further down in select_cfq_queue()
    we expire the cfqq because time slice expired and queue looses its share
    (vtime jump). Hence idle timer even if there are requests in the driver.

    Signed-off-by: Vivek Goyal <>
    block/cfq-iosched.c | 6 ------
    1 files changed, 0 insertions(+), 6 deletions(-)

    diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
    index 963659a..d609a10 100644
    --- a/block/cfq-iosched.c
    +++ b/block/cfq-iosched.c
    @@ -1690,12 +1690,6 @@ static bool cfq_arm_slice_timer(struct cfq_data *cfqd, int reset)
    return false;

    - * still requests with the driver, don't idle
    - */
    - if (rq_in_driver(cfqd))
    - return false;
    - /*
    * task has exited, don't wait
    cic = cfqd->active_cic;

     \ /
      Last update: 2009-11-04 00:49    [W:0.019 / U:67.884 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site