[PATCH 19/19] srcutree: Skip torture to-big transition for atomic SRCU

From: Paul E. McKenney

Date: Fri Sep 18 2026 - 20:43:55 EST


From: Kunwu Chan <kunwu.chan@xxxxxxxxx>

Atomic SRCU does not use the srcu_node combining tree. Exclude it
from the SRCU_SIZING_IS_TORTURE() transition in
srcu_torture_stats_print(), and warn if such a transition is requested.

Signed-off-by: Kunwu Chan <kunwu.chan@xxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
---
kernel/rcu/srcutree.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index 6a05bd8a6f39..6e37d53b412e 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -2422,8 +2422,10 @@ void srcu_torture_stats_print(struct srcu_struct *ssp, char *tt, char *tf)
}
pr_cont(" T(%ld,%ld)\n", s0, s1);
}
- if (SRCU_SIZING_IS_TORTURE())
- srcu_transition_to_big(ssp);
+ if (SRCU_SIZING_IS_TORTURE()) {
+ if (!WARN_ON_ONCE(ssp->srcu_reader_flavor == SRCU_READ_FLAVOR_ATOMIC))
+ srcu_transition_to_big(ssp);
+ }
}
EXPORT_SYMBOL_GPL(srcu_torture_stats_print);

--
2.40.1