On Wed, Sep 23, 2020 at 11:22:07AM -0400, Joel Fernandes (Google) wrote: > > This is required for several usecases identified. One of them being tracing > how > the segmented callback list changes. Tracing this has identified issues in RCU > code in the past. > > >From Paul: > Another use case is of course more accurately determining whether a given > CPU's > large pile of callbacks can be best served by making grace periods go faster, > invoking callbacks more vigorously, or both. It should also be possible to > simplify some of the callback handling a bit, given that some of the unnatural > acts are due to there having been no per-batch counts. > > Revision history: > v6: Fixed TREE04, and restored older logic to ensure rcu_barrier works. > > v5: Various changes, bug fixes. Discovery of rcu_barrier issue. > > v4: Restructured rcu_do_batch() and segcblist merging to avoid issues. > Fixed minor nit from Davidlohr. > v1->v3: minor nits. > (https://lore.kernel.org/lkml/20200719034210.2382053-1-j...@joelfernandes.org/)
Looking much improved, thank you! I have placed these on branch rcu/test in -rcu for testing and inspection. I had to apply them at b94e6291a208 ("torture: Force weak-hashed pointers on console log") and cherry-pick them onto the "dev" branch, but it looks like things worked nicely. Thanx, Paul > Joel Fernandes (Google) (4): > rcu/tree: Make rcu_do_batch count how many callbacks were executed > rcu/segcblist: Add counters to segcblist datastructure > rcu/trace: Add tracing for how segcb list changes > rcu/segcblist: Remove useless rcupdate.h include > > include/linux/rcu_segcblist.h | 2 + > include/trace/events/rcu.h | 25 ++++++ > kernel/rcu/rcu_segcblist.c | 161 +++++++++++++++++++++++++--------- > kernel/rcu/rcu_segcblist.h | 8 +- > kernel/rcu/tree.c | 18 ++-- > 5 files changed, 165 insertions(+), 49 deletions(-) > > -- > 2.28.0.681.g6f77f65b4e-goog >