]> git.baikalelectronics.ru Git - kernel.git/commit
block, bfq: remove direct switch to an entity in higher class
authorPaolo Valente <paolo.valente@linaro.org>
Thu, 31 Aug 2017 06:46:30 +0000 (08:46 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 31 Aug 2017 14:20:29 +0000 (08:20 -0600)
commit24d6c67c1a30b2b7e791223b70fe5aa2929e3bae
treeb770c8818e37f257e18840b66652342a6971ec3b
parent2e9b0022470ef0d5674c6c2a1f9d18ac315e8e53
block, bfq: remove direct switch to an entity in higher class

If the function bfq_update_next_in_service is invoked as a consequence
of the activation or requeueing of an entity, say E, and finds out
that E belongs to a higher-priority class than that of the current
next-in-service entity, then it sets next_in_service directly to
E. But this may lead to anomalous schedules, because E may happen not
be eligible for service, because its virtual start time is higher than
the system virtual time for its service tree.

This commit addresses this issue by simply removing this direct
switch.

Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Tested-by: Lee Tibbert <lee.tibbert@gmail.com>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-wf2q.c