• Paolo Valente's avatar
    block, bfq: reduce latency during request-pool saturation · cfd69712
    Paolo Valente authored
    This patch introduces an heuristic that reduces latency when the
    I/O-request pool is saturated. This goal is achieved by disabling
    device idling, for non-weight-raised queues, when there are weight-
    raised queues with pending or in-flight requests. In fact, as
    explained in more detail in the comment on the function
    bfq_bfqq_may_idle(), this reduces the rate at which processes
    associated with non-weight-raised queues grab requests from the pool,
    thereby increasing the probability that processes associated with
    weight-raised queues get a request immediately (or at least soon) when
    they need one. Along the same line, if there are weight-raised queues,
    then this patch halves the service rate of async (write) requests for
    non-weight-raised queues.
    Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
    Signed-off-by: default avatarArianna Avanzini <avanzini.arianna@gmail.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    cfd69712
bfq-iosched.c 221 KB