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? > 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. Thanks. -- tejun