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. The trace patch is the last one in this series. Passes 30 minutes of TREE01, TREE03, TREE07. Testing of other TREE configs is in progress. Patches are based on -rcu commit: 4f43de2a419a ("Merge branch 'lkmm-dev.2020.08.24a' into HEAD") Revision history: 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-joel@xxxxxxxxxxxxxxxxx/) Joel Fernandes (Google) (4): rcu/segcblist: Do not depend on rcl->len to store the segcb len during merge 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 include/linux/rcu_segcblist.h | 2 + include/trace/events/rcu.h | 25 +++++++ kernel/rcu/rcu_segcblist.c | 119 ++++++++++++++++++++++++++++++++-- kernel/rcu/rcu_segcblist.h | 8 +++ kernel/rcu/tree.c | 32 +++++++-- 5 files changed, 175 insertions(+), 11 deletions(-) -- 2.28.0.297.g1956fa8f8d-goog