]> git.baikalelectronics.ru Git - kernel.git/commit
block, bfq: fix service being wrongly set to zero in case of preemption
authorPaolo Valente <paolo.valente@linaro.org>
Mon, 25 Jun 2018 19:55:36 +0000 (21:55 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 9 Jul 2018 15:07:52 +0000 (09:07 -0600)
commit11fc7d68bc8f562503a0f1776369df79c55a8ebe
tree9a92db835315bb2cac28e4b3489b824a92e93157
parent95820e3d72e98d4f6e878c8307e14c2bf48ed761
block, bfq: fix service being wrongly set to zero in case of preemption

If
- a bfq_queue Q preempts another queue, because one request of Q
arrives in time,
- but, after this preemption, Q is not the queue that is set in service,
then Q->entity.service is set to 0 when Q is eventually set in
service. But Q should have continued receiving service with its old
budget (which is why preemption has occurred) and its old service.

This commit addresses this issue by resetting service on queue real
expiration.

Tested-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c
block/bfq-wf2q.c