• Paolo Valente's avatar
    block, bfq: do not consider interactive queues in srt filtering · 20cd3245
    Paolo Valente authored
    The speed at which a bfq_queue receives I/O is one of the parameters by
    which bfq decides whether the queue is soft real-time (i.e., whether the
    queue contains the I/O of a soft real-time application). In particular,
    when a bfq_queue remains without outstanding I/O requests, bfq computes
    the minimum time instant, named soft_rt_next_start, at which the next
    request of the queue may arrive for the queue to be deemed as soft real
    time.
    
    Unfortunately this filtering may cause problems with a queue in
    interactive weight raising. In fact, such a queue may be conveying the
    I/O needed to load a soft real-time application. The latter will
    actually exhibit a soft real-time I/O pattern after it finally starts
    doing its job. But, if soft_rt_next_start is updated for an interactive
    bfq_queue, and the queue has received a lot of service before remaining
    with no outstanding request (likely to happen on a fast device), then
    soft_rt_next_start is assigned such a high value that, for a very long
    time, the queue is prevented from being possibly considered as soft real
    time.
    
    This commit removes the updating of soft_rt_next_start for bfq_queues in
    interactive weight raising.
    Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    20cd3245
bfq-iosched.c 194 KB