On Thu, Jul 28, 2022 at 06:34:44PM +0800, Yu Kuai wrote: > Hi > > 在 2022/07/28 17:33, Michal Koutný 写道: > > On Wed, Jul 27, 2022 at 08:39:19AM -1000, Tejun Heo <tj@xxxxxxxxxx> wrote: > > > I'm not quiet sure this is correct. What if the limit keeps changing across > > > different values? Then we'd be calculating the skipped amount based on the > > > last configuration only which would be incorrect. > > > > When one change of configuration is correct, then all changes must be > > correct by induction. It's sufficient to take into account only the one > > old config and the new one. > > > > This __tg_update_skipped() calculates bytes_skipped with the limit > > before the change and bytes_skipped are used (divided by) the new limit > > in tg_with_in_bps_limit(). > > The accumulation of bytes_skipped across multiple changes (until slice > > properly ends) is proportional to how bytes_allowed would grow over > > time. > > That's why I find this correct (I admit I had to look back into my > > notes when this was first discussed). > > > > HTH, > > Michal > > > > Hi, Tejun > > Michal already explain it very well, please let me know if you still > thinks there are better ways. Ah, I see, so it's integrating into the skipped counters across multiple updates. I think it can definitely use comments explaining how it's working but that looks okay. Thanks. -- tejun