On Mon, May 05, 2025 at 03:44:43PM -0700, Paul E. McKenney wrote:
> On Mon, May 05, 2025 at 12:03:10PM -0700, Paul E. McKenney wrote:
> > Hello!
> > 
> > Following up on off-list discussions and requests for more information.
> > 
> > These reproduce reasonably easily, and here is an example:
> > 
> > ------------------------------------------------------------------------
> > [  426.022056] rcu: NOCB: Cannot CB-offload online CPU 25
> > [  460.867350] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
> > [  460.867980] rcu:     0-...!: (1 GPs behind) 
> > idle=8fe4/1/0x4000000000000000 softirq=2124/2125 fqs=0
> > [  460.868726] rcu:     1-...!: (1 GPs behind) 
> > idle=e0ac/1/0x4000000000000000 softirq=3547/3547 fqs=0
> 
> Early returns suggest that the following patch suppresses this issue.
> My guess is that the changes to TREE01 suffice, but I will try later
> excluding the TREE01.boot changes.  Architecture-dependent rcutorture
> scenario files, anyone?  :-/

Seven of nine runs failed without the patch below, and all of 63 passed
with the patch.  With only the Kconfig-option portion of the patch,
all of nine passed.

One option is the architecture-dependent rcutorture scenario files
mentioned above.  Another is to remove the CONFIG_MAXSMP=y and
CONFIG_CPUMASK_OFFSTACK=y from TREE01, but then add them to a new
architecture-dependent option in torture.sh.

Other options?

                                                        Thanx, Paul

> ------------------------------------------------------------------------
> 
> diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE01 
> b/tools/testing/selftests/rcutorture/configs/rcu/TREE01
> index 8ae41d5f81a3..6281dbdc189f 100644
> --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE01
> +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE01
> @@ -8,8 +8,9 @@ CONFIG_NO_HZ_IDLE=y
>  CONFIG_NO_HZ_FULL=n
>  CONFIG_RCU_TRACE=y
>  CONFIG_HOTPLUG_CPU=y
> -CONFIG_MAXSMP=y
> -CONFIG_CPUMASK_OFFSTACK=y
> +#CONFIG_MAXSMP=y
> +CONFIG_NR_CPUS=8
> +#CONFIG_CPUMASK_OFFSTACK=y
>  CONFIG_RCU_NOCB_CPU=y
>  CONFIG_DEBUG_LOCK_ALLOC=n
>  CONFIG_RCU_BOOST=n
> diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE01.boot 
> b/tools/testing/selftests/rcutorture/configs/rcu/TREE01.boot
> index 40af3df0f397..45e3b33f12a3 100644
> --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE01.boot
> +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE01.boot
> @@ -1,4 +1,4 @@
> -maxcpus=8 nr_cpus=43
> +maxcpus=8 nr_cpus=8
>  rcutree.gp_preinit_delay=3
>  rcutree.gp_init_delay=3
>  rcutree.gp_cleanup_delay=3

Reply via email to