These patches clean up the usage of dynticks nesting counters simplifying the code, while preserving the usecases. It is a much needed simplification, makes the code less confusing, and prevents future bugs such as those that arise from forgetting that the dynticks_nmi_nesting counter is not a simple counter and can be "crowbarred" in common situations. rcutorture testing with all TREE RCU configurations succeed with CONFIG_RCU_EQS_DEBUG=y and CONFIG_PROVE_LOCKING=y. v1->v2: - Rebase on v5.6-rc6 v2->v3: - Rebase on rcu/dev with adjustments for tasks-RCU. Joel Fernandes (Google) (4): Revert b8c17e6664c4 ("rcu: Maintain special bits at bottom of ->dynticks counter") rcu/tree: Add better tracing for dyntick-idle rcu/tree: Clean up dynticks counter usage rcu/tree: Remove dynticks_nmi_nesting counter Madhuparna Bhowmik (1): trace: events: rcu: Change description of rcu_dyntick trace event .../Data-Structures/Data-Structures.rst | 31 +-- Documentation/RCU/stallwarn.rst | 6 +- include/linux/rcutiny.h | 3 - include/trace/events/rcu.h | 29 +-- kernel/rcu/rcu.h | 4 - kernel/rcu/tree.c | 199 +++++++----------- kernel/rcu/tree.h | 4 +- kernel/rcu/tree_stall.h | 4 +- 8 files changed, 110 insertions(+), 170 deletions(-) -- 2.26.2.526.g744177e7f7-goog