This is a v5 that tends to improve synchronize_rcu() call in terms of latency reduction. This has been developed together with Neeraj Upadhyay. The delta between previous v4 and v5 is rather small. Main difference are cosmetic changes related to patch squashing and data structures splitting. It is based on Paul's dev branch. v4 -> v5: - furthers squashing to reduce number of patches; - remove the CONFIG_RCU_SR_NORMAL_DEBUG_GP Kconfig option and reuse already existing debug option which is CONFIG_PROVE_RCU; - add data structures in a separate patch. v4: https://lore.kernel.org/lkml/ZZ2bi5iPwXLgjB-f@xxxxxxxxxx/T/ v3: https://lore.kernel.org/lkml/cd45b0b5-f86b-43fb-a5f3-47d340cd4f9f@paulmck-laptop/T/ v2: https://lore.kernel.org/all/20231030131254.488186-1-urezki@xxxxxxxxx/T/ v1: https://lore.kernel.org/lkml/20231025140915.590390-1-urezki@xxxxxxxxx/T/ Uladzislau Rezki (Sony) (4): rcu: Add data structures for synchronize_rcu() rcu: Reduce synchronize_rcu() latency rcu: Add a trace event for synchronize_rcu_normal() rcu: Support direct wake-up of synchronize_rcu() users .../admin-guide/kernel-parameters.txt | 14 + include/trace/events/rcu.h | 27 ++ kernel/rcu/tree.c | 363 +++++++++++++++++- kernel/rcu/tree.h | 20 + kernel/rcu/tree_exp.h | 2 +- 5 files changed, 424 insertions(+), 2 deletions(-) -- 2.39.2