Re: [PATCH -next 2/2] blk-throttle: fix lower control under super low iops limit

From: Yu Kuai
Date: Thu Jun 13 2024 - 21:09:33 EST


Hi,

在 2024/06/14 6:32, Tejun Heo 写道:
Hello,

On Mon, May 13, 2024 at 08:08:48PM +0800, Yu Kuai wrote:
...
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.

Hmm... can't this be solved by starting the next slice with the right
credit?

Of course, this looks like feasible. I'll look into this.

static unsigned int tg_throtl_slice(struct throtl_grp *tg, int rw)
{
+ if (tg->throtl_slice[rw])
+ return tg->throtl_slice[rw];
return tg->td->throtl_slice;

Because this is a bit nasty. If we want to use difference throttling slices
for different cgroups, we might as well do it universally.

I do thought about this, however, because different cgroups have
different slice start, I convinced myself this is fine to have different
slice as well.

Thanks,
Kuai


Thanks.