tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot | 1 + 5 files changed, 5 insertions(+)
From: Zhouyi Zhou <zhouzhouyi@gmail.com>
Currently, default time between rcu torture forward-progress tests is 60HZ,
Under this configuration, false positive caused by __stack_chk_fail [1] is
difficult to reproduce (needs average 5*420 seconds for SRCU-P),
which means one has to invoke [2] 5 times in average to make [1] appear.
With time between rcu torture forward-progress tests be 1 HZ, above
phenomenon will be reproduced within 3 minutes, which means we can
reproduce [1] everytime we invoke [2].
Although [1] is a false positive, this change will make possible future
true bugs easier to be discovered.
[1] Link: https://lore.kernel.org/lkml/CAABZP2yS5=ZUwEZQ7iHkV0wDm_HgO8K-TeAhyJrZhavzKDa44Q@mail.gmail.com/T/
[2] tools/testing/selftests/rcutorture/bin/torture.sh
Tested in PPC VM of Opensource Lab of Oregon State Univerisity.
Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
---
tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot | 1 +
tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot | 1 +
tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot | 1 +
tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot | 1 +
tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot | 1 +
5 files changed, 5 insertions(+)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot
index ce0694fd9b92..982582bff041 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot
+++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot
@@ -1,2 +1,3 @@
rcutorture.torture_type=srcu
rcutorture.fwd_progress=3
+rcutorture.fwd_progress_holdoff=1
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot
index 2db39f298d18..18f5d7361d8a 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot
+++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot
@@ -1,4 +1,5 @@
rcutorture.torture_type=srcud
rcupdate.rcu_self_test=1
rcutorture.fwd_progress=3
+rcutorture.fwd_progress_holdoff=1
srcutree.big_cpu_lim=5
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot
index c70b5db6c2ae..b86bc7df7603 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot
@@ -1,2 +1,3 @@
rcutorture.torture_type=tasks-tracing
rcutorture.fwd_progress=2
+rcutorture.fwd_progress_holdoff=1
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot b/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot
index dd914fa8f690..933302f885df 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot
@@ -1 +1,2 @@
rcutorture.fwd_progress=2
+rcutorture.fwd_progress_holdoff=1
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot b/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot
index dd914fa8f690..933302f885df 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot
@@ -1 +1,2 @@
rcutorture.fwd_progress=2
+rcutorture.fwd_progress_holdoff=1
--
2.34.1
On Tue, May 02, 2023 at 11:06:02PM +0800, zhouzhouyi@gmail.com wrote: > From: Zhouyi Zhou <zhouzhouyi@gmail.com> > > Currently, default time between rcu torture forward-progress tests is 60HZ, > Under this configuration, false positive caused by __stack_chk_fail [1] is > difficult to reproduce (needs average 5*420 seconds for SRCU-P), > which means one has to invoke [2] 5 times in average to make [1] appear. > > With time between rcu torture forward-progress tests be 1 HZ, above > phenomenon will be reproduced within 3 minutes, which means we can > reproduce [1] everytime we invoke [2]. > > Although [1] is a false positive, this change will make possible future > true bugs easier to be discovered. > > [1] Link: https://lore.kernel.org/lkml/CAABZP2yS5=ZUwEZQ7iHkV0wDm_HgO8K-TeAhyJrZhavzKDa44Q@mail.gmail.com/T/ > [2] tools/testing/selftests/rcutorture/bin/torture.sh > > Tested in PPC VM of Opensource Lab of Oregon State Univerisity. > > Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com> Please accept my apologies for being ridiculously slow to reply! In recent -rcu, module parameters such as this one that simply set a value can be overridden on the command line. So you could get the effect (again, in recent kernels) in your testing by adding: --bootargs "rcutorture.fwd_progress_holdoff=1" The reason that I am reluctant to accept this patch is that we sometimes have trouble with this forward-progress testing exhausting memory, and making in happen could therefore cause trouble with generic rcutorture testing. Or am I missing the point of this change? Thanx, Paul > --- > tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot | 1 + > tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot | 1 + > tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot | 1 + > tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot | 1 + > tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot | 1 + > 5 files changed, 5 insertions(+) > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot > index ce0694fd9b92..982582bff041 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot > @@ -1,2 +1,3 @@ > rcutorture.torture_type=srcu > rcutorture.fwd_progress=3 > +rcutorture.fwd_progress_holdoff=1 > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot > index 2db39f298d18..18f5d7361d8a 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot > @@ -1,4 +1,5 @@ > rcutorture.torture_type=srcud > rcupdate.rcu_self_test=1 > rcutorture.fwd_progress=3 > +rcutorture.fwd_progress_holdoff=1 > srcutree.big_cpu_lim=5 > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot > index c70b5db6c2ae..b86bc7df7603 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot > @@ -1,2 +1,3 @@ > rcutorture.torture_type=tasks-tracing > rcutorture.fwd_progress=2 > +rcutorture.fwd_progress_holdoff=1 > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot b/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot > index dd914fa8f690..933302f885df 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot > @@ -1 +1,2 @@ > rcutorture.fwd_progress=2 > +rcutorture.fwd_progress_holdoff=1 > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot b/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot > index dd914fa8f690..933302f885df 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot > @@ -1 +1,2 @@ > rcutorture.fwd_progress=2 > +rcutorture.fwd_progress_holdoff=1 > -- > 2.34.1 >
On Thu, Aug 24, 2023 at 5:15 AM Paul E. McKenney <paulmck@kernel.org> wrote: > > On Tue, May 02, 2023 at 11:06:02PM +0800, zhouzhouyi@gmail.com wrote: > > From: Zhouyi Zhou <zhouzhouyi@gmail.com> > > > > Currently, default time between rcu torture forward-progress tests is 60HZ, > > Under this configuration, false positive caused by __stack_chk_fail [1] is > > difficult to reproduce (needs average 5*420 seconds for SRCU-P), > > which means one has to invoke [2] 5 times in average to make [1] appear. > > > > With time between rcu torture forward-progress tests be 1 HZ, above > > phenomenon will be reproduced within 3 minutes, which means we can > > reproduce [1] everytime we invoke [2]. > > > > Although [1] is a false positive, this change will make possible future > > true bugs easier to be discovered. > > > > [1] Link: https://lore.kernel.org/lkml/CAABZP2yS5=ZUwEZQ7iHkV0wDm_HgO8K-TeAhyJrZhavzKDa44Q@mail.gmail.com/T/ > > [2] tools/testing/selftests/rcutorture/bin/torture.sh > > > > Tested in PPC VM of Opensource Lab of Oregon State Univerisity. > > > > Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com> > > Please accept my apologies for being ridiculously slow to reply! Never mind. I have made a lot of self improvement during the study of RCU and RCU torture and your book ;-) > > In recent -rcu, module parameters such as this one that simply set a > value can be overridden on the command line. So you could get the effect > (again, in recent kernels) in your testing by adding: > > --bootargs "rcutorture.fwd_progress_holdoff=1" > > The reason that I am reluctant to accept this patch is that we sometimes > have trouble with this forward-progress testing exhausting memory, and > making in happen could therefore cause trouble with generic rcutorture > testing. Agree, false positives can disrupt our judgement in many cases. Thanx Zhouyi > > Or am I missing the point of this change? > > Thanx, Paul > > > --- > > tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot | 1 + > > tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot | 1 + > > tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot | 1 + > > tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot | 1 + > > tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot | 1 + > > 5 files changed, 5 insertions(+) > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot > > index ce0694fd9b92..982582bff041 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot > > @@ -1,2 +1,3 @@ > > rcutorture.torture_type=srcu > > rcutorture.fwd_progress=3 > > +rcutorture.fwd_progress_holdoff=1 > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot > > index 2db39f298d18..18f5d7361d8a 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-P.boot > > @@ -1,4 +1,5 @@ > > rcutorture.torture_type=srcud > > rcupdate.rcu_self_test=1 > > rcutorture.fwd_progress=3 > > +rcutorture.fwd_progress_holdoff=1 > > srcutree.big_cpu_lim=5 > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot > > index c70b5db6c2ae..b86bc7df7603 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02.boot > > @@ -1,2 +1,3 @@ > > rcutorture.torture_type=tasks-tracing > > rcutorture.fwd_progress=2 > > +rcutorture.fwd_progress_holdoff=1 > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot b/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot > > index dd914fa8f690..933302f885df 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE02.boot > > @@ -1 +1,2 @@ > > rcutorture.fwd_progress=2 > > +rcutorture.fwd_progress_holdoff=1 > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot b/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot > > index dd914fa8f690..933302f885df 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10.boot > > @@ -1 +1,2 @@ > > rcutorture.fwd_progress=2 > > +rcutorture.fwd_progress_holdoff=1 > > -- > > 2.34.1 > >
© 2016 - 2025 Red Hat, Inc.