• Paolo Valente's avatar
    block, bfq: boost throughput with flash-based non-queueing devices · edaf9428
    Paolo Valente authored
    When a queue associated with a process remains empty, there are cases
    where throughput gets boosted if the device is idled to await the
    arrival of a new I/O request for that queue. Currently, BFQ assumes
    that one of these cases is when the device has no internal queueing
    (regardless of the properties of the I/O being served). Unfortunately,
    this condition has proved to be too general. So, this commit refines it
    as "the device has no internal queueing and is rotational".
    
    This refinement provides a significant throughput boost with random
    I/O, on flash-based storage without internal queueing. For example, on
    a HiKey board, throughput increases by up to 125%, growing, e.g., from
    6.9MB/s to 15.6MB/s with two or three random readers in parallel.
    Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
    Signed-off-by: default avatarLuca Miccio <lucmiccio@gmail.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    edaf9428
bfq-iosched.c 164 KB