Re: [PATCH RFC] rcu: torture: shorten the time between forward-progress tests
From: Zhouyi Zhou <hidden>
Date: 2023-08-24 02:30:47
Also in:
lkml, rcu
On Thu, Aug 24, 2023 at 5:15 AM Paul E. McKenney [off-list ref] wrote:
On Tue, May 02, 2023 at 11:06:02PM +0800, zhouzhouyi@gmail.com wrote:quoted
From: Zhouyi Zhou <redacted> 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/ (local) [2] tools/testing/selftests/rcutorture/bin/torture.sh Tested in PPC VM of Opensource Lab of Oregon State Univerisity. Signed-off-by: Zhouyi Zhou <redacted>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, Paulquoted
--- 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=1diff --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=5diff --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=1diff --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=1diff --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