diff options
author | Paolo Valente <paolo.valente@linaro.org> | 2021-06-19 16:09:47 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-06-21 15:03:41 -0600 |
commit | efc72524b3a9e4e7bc7c07f756528736409ec1b7 (patch) | |
tree | bfa73331f41976c68ed3eb811060669a539ec76d /virt | |
parent | bd3664b362381c4c1473753ebedf0ab242a60d1d (diff) |
block, bfq: check waker only for queues with no in-flight I/O
Consider two bfq_queues, say Q1 and Q2, with Q2 empty. If a request of
Q1 gets completed shortly before a new request arrives for Q2, then
BFQ flags Q1 as a candidate waker for Q2. Yet, the arrival of this new
request may have a different cause, in the following case. If also Q2
has requests in flight while waiting for the arrival of a new request,
then the completion of its own requests may be the actual cause of the
awakening of the process that sends I/O to Q2. So Q1 may be flagged
wrongly as a candidate waker.
This commit avoids this deceptive flagging, by disabling
candidate-waker flagging for Q2, if Q2 has in-flight I/O.
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Link: https://lore.kernel.org/r/20210619140948.98712-7-paolo.valente@linaro.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions