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 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 .../Data-Structures/Data-Structures.rst | 31 +-- Documentation/RCU/stallwarn.txt | 6 +- include/linux/rcutiny.h | 3 - include/trace/events/rcu.h | 29 +-- kernel/rcu/rcu.h | 4 - kernel/rcu/tree.c | 188 +++++++----------- kernel/rcu/tree.h | 4 +- kernel/rcu/tree_stall.h | 4 +- 8 files changed, 105 insertions(+), 164 deletions(-) -- 2.26.0.rc2.310.g2932bb562d-goog