• Angelo Ruocco's avatar
    block, bfq: remove superfluous check in queue-merging setup · 4403e4e4
    Angelo Ruocco authored
    When two or more processes do I/O in a way that the their requests are
    sequential in respect to one another, BFQ merges the bfq_queues associated
    with the processes. This way the overall I/O pattern becomes sequential,
    and thus there is a boost in througput.
    These cooperating processes usually start or restart to do I/O shortly
    after each other. So, in order to avoid merging non-cooperating processes,
    BFQ ensures that none of these queues has been in weight raising for too
    long.
    
    In this respect, from commit "block, bfq-sq, bfq-mq: let a queue be merged
    only shortly after being created", BFQ checks whether any queue (and not
    only weight-raised ones) is doing I/O continuously from too long to be
    merged.
    
    This new additional check makes the first one useless: a queue doing
    I/O from long enough, if being weight-raised, is also a queue in
    weight raising for too long to be merged. Accordingly, this commit
    removes the first check.
    Signed-off-by: default avatarAngelo Ruocco <angeloruocco90@gmail.com>
    Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    4403e4e4
bfq-iosched.c 171 KB