• Hou Tao's avatar
    cfq-iosched: fix the delay of cfq_group's vdisktime under iops mode · 5be6b756
    Hou Tao authored
    When adding a cfq_group into the cfq service tree, we use CFQ_IDLE_DELAY
    as the delay of cfq_group's vdisktime if there have been other cfq_groups
    already.
    
    When cfq is under iops mode, commit 9a7f38c4 ("cfq-iosched: Convert
    from jiffies to nanoseconds") could result in a large iops delay and
    lead to an abnormal io schedule delay for the added cfq_group. To fix
    it, we just need to revert to the old CFQ_IDLE_DELAY value: HZ / 5
    when iops mode is enabled.
    
    Despite having the same value, the delay of a cfq_queue in idle class
    and the delay of cfq_group are different things, so I define two new
    macros for the delay of a cfq_group under time-slice mode and iops mode.
    
    Fixes: 9a7f38c4 ("cfq-iosched: Convert from jiffies to nanoseconds")
    Cc: <stable@vger.kernel.org> # 4.8+
    Signed-off-by: default avatarHou Tao <houtao1@huawei.com>
    Acked-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    5be6b756
cfq-iosched.c 127 KB