From: Eric Dumazet <eric.dumazet@xxxxxxxxx> Date: Sun, 04 Dec 2016 09:48:16 -0800 > From: Eric Dumazet <edumazet@xxxxxxxxxx> > > 1) Old code was hard to maintain, due to complex lock chains. > (We probably will be able to remove some kfree_rcu() in callers) > > 2) Using a single timer to update all estimators does not scale. > > 3) Code was buggy on 32bit kernel (WRITE_ONCE() on 64bit quantity > is not supposed to work well) > > In this rewrite : > > - I removed the RB tree that had to be scanned in > gen_estimator_active(). qdisc dumps should be much faster. > > - Each estimator has its own timer. > > - Estimations are maintained in net_rate_estimator structure, > instead of dirtying the qdisc. Minor, but part of the simplification. > > - Reading the estimator uses RCU and a seqcount to provide proper > support for 32bit kernels. > > - We reduce memory need when estimators are not used, since > we store a pointer, instead of the bytes/packets counters. > > - xt_rateest_mt() no longer has to grab a spinlock. > (In the future, xt_rateest_tg() could be switched to per cpu counters) > > Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx> > --- > v3: Renamed some parameters to please make htmldocs > v2: Removed unwanted changes to tcp_output.c This was probably long overdue, thanks for working on this. Applied, thanks Eric. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html