block, bfq: reduce upper bound for inject limit to max_rq_in_driver+1
Upon an increment attempt of the injection limit, the latter is constrained not to become higher than twice the maximum number max_rq_in_driver of I/O requests that have happened to be in service in the drive. This high bound allows the injection limit to grow beyond max_rq_in_driver, which may then cause max_rq_in_driver itself to grow. However, since the limit is incremented by only one unit at a time, there is no need for such a high bound, and just max_rq_in_driver+1 is enough. Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name> Signed-off-by: Paolo Valente <paolo.valente@linaro.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
23ed570acc
commit
c1e0a18228
|
@ -5805,7 +5805,7 @@ static void bfq_update_inject_limit(struct bfq_data *bfqd,
|
|||
bfqq->inject_limit--;
|
||||
bfqq->decrease_time_jif = jiffies;
|
||||
} else if (tot_time_ns < threshold &&
|
||||
old_limit < bfqd->max_rq_in_driver<<1)
|
||||
old_limit <= bfqd->max_rq_in_driver)
|
||||
bfqq->inject_limit++;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue