Commit c7cd161e authored by Joel Fernandes (Google)'s avatar Joel Fernandes (Google) Committed by Paul E. McKenney

rcu: Assign higher prio to RCU threads if rcutorture is built-in

The rcutorture RCU priority boosting tests fail even with CONFIG_RCU_BOOST
set because rcutorture's threads run at the same priority as the default
RCU kthreads (RT class with priority of 1).

This patch checks if RCU torture is built into the kernel and if so,
assigns RT priority 1 to the RCU threads, allowing the rcutorture boost
tests to pass.
Signed-off-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent b7b6f94c
...@@ -3923,12 +3923,16 @@ static int __init rcu_spawn_gp_kthread(void) ...@@ -3923,12 +3923,16 @@ static int __init rcu_spawn_gp_kthread(void)
struct task_struct *t; struct task_struct *t;
/* Force priority into range. */ /* Force priority into range. */
if (IS_ENABLED(CONFIG_RCU_BOOST) && kthread_prio < 1) if (IS_ENABLED(CONFIG_RCU_BOOST) && kthread_prio < 2
&& IS_BUILTIN(CONFIG_RCU_TORTURE_TEST))
kthread_prio = 2;
else if (IS_ENABLED(CONFIG_RCU_BOOST) && kthread_prio < 1)
kthread_prio = 1; kthread_prio = 1;
else if (kthread_prio < 0) else if (kthread_prio < 0)
kthread_prio = 0; kthread_prio = 0;
else if (kthread_prio > 99) else if (kthread_prio > 99)
kthread_prio = 99; kthread_prio = 99;
if (kthread_prio != kthread_prio_in) if (kthread_prio != kthread_prio_in)
pr_alert("rcu_spawn_gp_kthread(): Limited prio to %d from %d\n", pr_alert("rcu_spawn_gp_kthread(): Limited prio to %d from %d\n",
kthread_prio, kthread_prio_in); kthread_prio, kthread_prio_in);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment