Re: [PATCH v2] blk-throttle: fix lower control under super low iops limit
From: Tejun Heo
Date: Fri Jun 28 2024 - 13:17:11 EST
Sorry about the delay.
On Tue, Jun 18, 2024 at 02:21:08PM +0800, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>
Acked-by: Tejun Heo <tj@xxxxxxxxxx>
Thanks.
--
tejun