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