diff mbox series

[v3,4/12] rcutorture: Make torture.sh --do-rt use CONFIG_PREEMPT_RT

Message ID 20250407191221.28679-1-paulmck@kernel.org (mailing list archive)
State Accepted
Commit ec101bc1d952af86b3c896e95ef171dc3ed89426
Headers show
Series None | expand

Commit Message

Paul E. McKenney April 7, 2025, 7:12 p.m. UTC
The torture.sh --do-rt command-line parameter is intended to mimic -rt
kernels.  Now that CONFIG_PREEMPT_RT is upstream, this commit makes this
mimicking more precise.

Note that testing of RCU priority boosting is disabled in favor
of forward-progress testing of RCU callbacks.  If it turns out to be
possible to make kernels built with CONFIG_PREEMPT_RT=y to tolerate
testing of both, both will be enabled.

[ paulmck: Apply Sebastian Siewior feedback. ]

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 tools/testing/selftests/rcutorture/bin/torture.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Joel Fernandes April 8, 2025, 2:29 p.m. UTC | #1
Hello, Paul,

On Tue, 8 Apr 2025 14:23:32 GMT, "Paul E. McKenney" wrote:
> The torture.sh --do-rt command-line parameter is intended to mimic -rt
> kernels.  Now that CONFIG_PREEMPT_RT is upstream, this commit makes this
> mimicking more precise.
> 
> Note that testing of RCU priority boosting is disabled in favor
> of forward-progress testing of RCU callbacks.  If it turns out to be
> possible to make kernels built with CONFIG_PREEMPT_RT=y to tolerate
> testing of both, both will be enabled.
> 
> [ paulmck: Apply Sebastian Siewior feedback. ]
> 
> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

I pulled this from your -dev branch for 6.16. I checked and this patch is the
only one changed so feel free to not re-send the whole series (I will be
resending it anyway once I have all the topic branches).

Also, I added your sign off as it was missing:
[PATCH 03/12] rcutorture: Split out beginning and end from
rcu_torture_one_read()

thanks,

 - Joel
Paul E. McKenney April 8, 2025, 4:20 p.m. UTC | #2
On Tue, Apr 08, 2025 at 02:29:19PM -0000, Joel Fernandes wrote:
> Hello, Paul,
> 
> On Tue, 8 Apr 2025 14:23:32 GMT, "Paul E. McKenney" wrote:
> > The torture.sh --do-rt command-line parameter is intended to mimic -rt
> > kernels.  Now that CONFIG_PREEMPT_RT is upstream, this commit makes this
> > mimicking more precise.
> > 
> > Note that testing of RCU priority boosting is disabled in favor
> > of forward-progress testing of RCU callbacks.  If it turns out to be
> > possible to make kernels built with CONFIG_PREEMPT_RT=y to tolerate
> > testing of both, both will be enabled.
> > 
> > [ paulmck: Apply Sebastian Siewior feedback. ]
> > 
> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> > Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> 
> I pulled this from your -dev branch for 6.16. I checked and this patch is the
> only one changed so feel free to not re-send the whole series (I will be
> resending it anyway once I have all the topic branches).

Works for me, thank you!

> Also, I added your sign off as it was missing:
> [PATCH 03/12] rcutorture: Split out beginning and end from
> rcu_torture_one_read()

I should have caught that!  Thank you for fixing it up.

							Thanx, Paul
diff mbox series

Patch

diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/testing/selftests/rcutorture/bin/torture.sh
index 0447c4a00cc4d..d53ee1e0ffc79 100755
--- a/tools/testing/selftests/rcutorture/bin/torture.sh
+++ b/tools/testing/selftests/rcutorture/bin/torture.sh
@@ -448,13 +448,17 @@  fi
 
 if test "$do_rt" = "yes"
 then
-	# With all post-boot grace periods forced to normal.
-	torture_bootargs="rcupdate.rcu_cpu_stall_suppress_at_boot=1 torture.disable_onoff_at_boot rcupdate.rcu_task_stall_timeout=30000 rcupdate.rcu_normal=1"
-	torture_set "rcurttorture" tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --trust-make
+	# In both runs, disable testing of RCU priority boosting because
+	# -rt doesn't like its interaction with testing of callback
+	# flooding.
+
+	# With all post-boot grace periods forced to normal (default for PREEMPT_RT).
+	torture_bootargs="rcupdate.rcu_cpu_stall_suppress_at_boot=1 torture.disable_onoff_at_boot rcupdate.rcu_task_stall_timeout=30000 rcutorture.test_boost=0 rcutorture.preempt_duration=0"
+	torture_set "rcurttorture" tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfig "CONFIG_PREEMPT_RT=y CONFIG_EXPERT=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y" --trust-make
 
 	# With all post-boot grace periods forced to expedited.
-	torture_bootargs="rcupdate.rcu_cpu_stall_suppress_at_boot=1 torture.disable_onoff_at_boot rcupdate.rcu_task_stall_timeout=30000 rcupdate.rcu_expedited=1"
-	torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --trust-make
+	torture_bootargs="rcupdate.rcu_cpu_stall_suppress_at_boot=1 torture.disable_onoff_at_boot rcupdate.rcu_task_stall_timeout=30000 rcutorture.test_boost=0 rcupdate.rcu_normal_after_boot=0 rcupdate.rcu_expedited=1 rcutorture.preempt_duration=0"
+	torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfig "CONFIG_PREEMPT_RT=y CONFIG_EXPERT=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_FULL=y" --trust-make
 fi
 
 if test "$do_srcu_lockdep" = "yes"