On !SMP tests, the forward-progress kthread might prevent RCU's
grace-period kthread from running, which would defeat RCU's
forward-progress measures.  On PREEMPT tests without RCU priority
boosting, the forward-progress kthread might preempt a reader for an
extended time period, which would also defeat RCU's forward-progress
measures.  This commit therefore reduced rcutorture's forward-progress
kthread's priority in those cases.

Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com>
---
 kernel/rcu/rcutorture.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 9622192ec5c9..ac487ea8d245 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -1710,6 +1710,8 @@ static int rcu_torture_fwd_prog(void *args)
        static DEFINE_TORTURE_RANDOM(trs);
 
        VERBOSE_TOROUT_STRING("rcu_torture_fwd_progress task started");
+       if (!IS_ENABLED(CONFIG_SMP) || !IS_ENABLED(CONFIG_RCU_BOOST))
+               set_user_nice(current, MAX_NICE);
        if  (cur_ops->call && cur_ops->sync && cur_ops->cb_barrier) {
                init_rcu_head_on_stack(&fcs.rh);
                cur_ops->call(&fcs.rh, rcu_torture_fwd_prog_cb);
-- 
2.17.1

Reply via email to