This is v6. It is based on the Paul's "dev" branch: HEAD: f1bfe538c7970283040a7188a291aca9f18f0c42 please note, that patches should be applied from scratch, i.e. the v5 has to be dropped from the "dev". v5 -> v6: - Fix a race due to realising a wait-head from the gp-kthread; - Use our own private workqueue with WQ_MEM_RECLAIM to have at least one execution context. v5: https://lore.kernel.org/lkml/20240220183115.74124-1-urezki@xxxxxxxxx/ 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) (6): 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 rcu: Do not release a wait-head from a GP kthread rcu: Allocate WQ with WQ_MEM_RECLAIM bit set .../admin-guide/kernel-parameters.txt | 14 + include/trace/events/rcu.h | 27 ++ kernel/rcu/tree.c | 361 +++++++++++++++++- kernel/rcu/tree.h | 20 + kernel/rcu/tree_exp.h | 2 +- 5 files changed, 422 insertions(+), 2 deletions(-) -- 2.39.2