block, bfq: always update the budget of an entity when needed
When the next child entity to serve changes for a given parent entity, the budget of that parent entity must be updated accordingly. Unfortunately, this update is not performed, by mistake, for the entities that happen to switch from having no child entity to serve, to having one child entity to serve. Signed-off-by: Paolo Valente <paolo.valente@linaro.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
8a511ba5fe
Коммит
e02a0aa26b
|
@ -130,10 +130,14 @@ static bool bfq_update_next_in_service(struct bfq_sched_data *sd,
|
|||
if (!change_without_lookup) /* lookup needed */
|
||||
next_in_service = bfq_lookup_next_entity(sd, expiration);
|
||||
|
||||
if (next_in_service)
|
||||
parent_sched_may_change = !sd->next_in_service ||
|
||||
if (next_in_service) {
|
||||
bool new_budget_triggers_change =
|
||||
bfq_update_parent_budget(next_in_service);
|
||||
|
||||
parent_sched_may_change = !sd->next_in_service ||
|
||||
new_budget_triggers_change;
|
||||
}
|
||||
|
||||
sd->next_in_service = next_in_service;
|
||||
|
||||
if (!next_in_service)
|
||||
|
|
Загрузка…
Ссылка в новой задаче