OSDN Git Service

block, bfq: put reqs of waker and woken in dispatch list
authorPaolo Valente <paolo.valente@linaro.org>
Thu, 4 Mar 2021 17:46:23 +0000 (18:46 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 25 Mar 2021 16:50:07 +0000 (10:50 -0600)
commit7cc4ffc55564df4349050bcbf46fbdf3f35aef52
treef1ec4c78d1de2fb3ca3d2aec2e9c38a4fddddd5a
parent2ec5a5c48373d4bc2f0699f86507a65bf0b9df35
block, bfq: put reqs of waker and woken in dispatch list

Consider a new I/O request that arrives for a bfq_queue bfqq. If, when
this happens, the only active bfq_queues are bfqq and either its waker
bfq_queue or one of its woken bfq_queues, then there is no point in
queueing this new I/O request in bfqq for service. In fact, the
in-service queue and bfqq agree on serving this new I/O request as
soon as possible. So this commit puts this new I/O request directly
into the dispatch list.

Tested-by: Jan Kara <jack@suse.cz>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Link: https://lore.kernel.org/r/20210304174627.161-3-paolo.valente@linaro.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c