On Thu, Sep 10, 2026 at 12:14:27PM +0800, Kunwu Chan wrote:
> Atomic SRCU does not use the srcu_node combining tree.  Exclude it
> from the SRCU_SIZING_IS_TORTURE() transition in
> srcu_torture_stats_print().
> 
> Signed-off-by: Kunwu Chan <[email protected]>
> ---
>  kernel/rcu/srcutree.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
> index d462102c6bb6..99d11fb4123a 100644
> --- a/kernel/rcu/srcutree.c
> +++ b/kernel/rcu/srcutree.c
> @@ -2421,7 +2421,7 @@ 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())
> +     if (SRCU_SIZING_IS_TORTURE() && ssp->srcu_reader_flavor != 
> SRCU_READ_FLAVOR_ATOMIC)
>               srcu_transition_to_big(ssp);
>  }

Much better, thank you!

Could you also please add an "else" clause with a WARN_ON_ONCE()
for ssp->srcu_reader_flavor == SRCU_READ_FLAVOR_ATOMIC?

This is after all a user error where someone said to torture atomic SRCU
but also said to transition to big.

                                                        Thanx, Paul

>  EXPORT_SYMBOL_GPL(srcu_torture_stats_print);
> -- 
> 2.43.0
> 

Reply via email to