From: Paolo Valente Date: Thu, 22 Aug 2019 15:20:35 +0000 (+0200) Subject: block, bfq: reduce upper bound for inject limit to max_rq_in_driver+1 X-Git-Tag: v5.4-rc1~54^2~8 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c1e0a18228822258cbeb49a923d93f8f01c74a76;p=users%2Fjedix%2Flinux-maple.git 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 Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe --- diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index 5a2bbd8613a86..e114282204f66 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -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++; }