]> www.infradead.org Git - users/jedix/linux-maple.git/commit
blk-throttle: fix lower control under super low iops limit
authorYu Kuai <yukuai3@huawei.com>
Tue, 18 Jun 2024 06:21:08 +0000 (14:21 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 28 Jun 2024 20:55:02 +0000 (14:55 -0600)
commit1beabab88ecee0698ecee7b54afa9cce7046ef96
tree8aedc2453ad172993254026cdefa7c4b68dc9160
parent3991657ae7074c3c497bf095093178bed37ea1b4
blk-throttle: fix lower control under super low iops limit

User will configure allowed iops limit in 1s, and calculate_io_allowed()
will calculate allowed iops in the slice by:

limit * HZ / throtl_slice

However, if limit is quite low, the result can be 0, then
allowed IO in the slice is 0, this will cause missing dispatch and
control will be lower than limit.

For example, set iops_limit to 5 with HD disk, and test will found that
iops will be 3.

This is usually not a big deal, because user will unlikely to configure
such low iops limit, however, this is still a problem in the extreme
scene.

Fix the problem by making sure the wait time calculated by
tg_within_iops_limit() should allow at least one IO to be dispatched.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20240618062108.3680835-1-yukuai1@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-throttle.c