summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorZqiang <qiang.zhang1211@gmail.com>2023-11-03 15:26:39 +0800
committerNeeraj Upadhyay (AMD) <neeraj.iitr10@gmail.com>2023-11-23 11:58:18 +0530
commit90f1015dfee3d33f8ca7bfe03296d100d465e385 (patch)
treebf153873f47f2cadf5b216eee40e9c47328a8519 /kernel/rcu
parentaf19a2526cba92082723b98fcf191a595054a952 (diff)
downloadlinux-90f1015dfee3d33f8ca7bfe03296d100d465e385.tar.gz
linux-90f1015dfee3d33f8ca7bfe03296d100d465e385.tar.bz2
linux-90f1015dfee3d33f8ca7bfe03296d100d465e385.zip
rcutorture: Add fqs_holdoff check before fqs_task is created
For rcutorture tests on RCU implementations that support force-quiescent-state operations and that set the fqs_duration module parameter greater than zero, the fqs_task kthread will be created. However, if the fqs_holdoff module parameter is not set, then its default value of zero will cause fqs_task enter a long-term busy loop until stopped by kthread_stop(). This commit therefore adds a fqs_holdoff check before the fqs_task is created, making sure that whenever the fqs_task is created, the fqs_holdoff will be greater than zero. Signed-off-by: Zqiang <qiang.zhang1211@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Neeraj Upadhyay (AMD) <neeraj.iitr10@gmail.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/rcutorture.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 30fc9d34e329..a0b2520bd32b 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -3872,7 +3872,9 @@ rcu_torture_init(void)
}
if (fqs_duration < 0)
fqs_duration = 0;
- if (fqs_duration) {
+ if (fqs_holdoff < 0)
+ fqs_holdoff = 0;
+ if (fqs_duration && fqs_holdoff) {
/* Create the fqs thread */
firsterr = torture_create_kthread(rcu_torture_fqs, NULL,
fqs_task);