• Angelo Ruocco's avatar
    block, bfq: check low_latency flag in bfq_bfqq_save_state() · 1be6e8a9
    Angelo Ruocco authored
    A just-created bfq_queue will certainly be deemed as interactive on
    the arrival of its first I/O request, if the low_latency flag is
    set. Yet, if the queue is merged with another queue on the arrival of
    its first I/O request, it will not have the chance to be flagged as
    interactive. Nevertheless, if the queue is then split soon enough, it
    has to be flagged as interactive after the split.
    
    To handle this early-merge scenario correctly, BFQ saves the state of
    the queue, on the merge, as if the latter had already been deemed
    interactive. So, if the queue is split soon, it will get
    weight-raised, because the previous state of the queue is resumed on
    the split.
    
    Unfortunately, in the act of saving the state of the newly-created
    queue, BFQ doesn't check whether the low_latency flag is set, and this
    causes early-merged queues to be then weight-raised, on queue splits,
    even if low_latency is off. This commit addresses this problem by
    adding the missing check.
    Signed-off-by: default avatarAngelo Ruocco <angeloruocco90@gmail.com>
    Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    1be6e8a9
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.cocciconfig Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...