• Jens Axboe's avatar
    cfq-iosched: change dispatch logic to deal with single requests at the time · 2f5cb738
    Jens Axboe authored
    The IO scheduler core calls into the IO scheduler dispatch_request hook
    to move requests from the IO scheduler and into the driver dispatch
    list. It only does so when the dispatch list is empty. CFQ moves several
    requests to the dispatch list, which can cause higher latencies if we
    suddenly have to switch to some important sync IO. Change the logic to
    move one request at the time instead.
    
    This should almost be functionally equivalent to what we did before,
    except that we now honor 'quantum' as the maximum queue depth at the
    device side from any single cfqq. If there's just a single active
    cfqq, we allow up to 4 times the normal quantum.
    Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
    2f5cb738
cfq-iosched.c 58.6 KB