rcu: Make priority of grace-period thread consistent
The priority of RCU grace period threads is set to kthread_prio when they are launched from rcu_spawn_gp_kthread(). The same is not true of rcu_spawn_one_nocb_kthread(). Accordingly, add priority elevation to rcu_spawn_one_nocb_kthread(). Signed-off-by: Alison Chaiken <achaiken@aurora.tech> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
c8db27dd0e
commit
54577e23fa
|
@ -1239,6 +1239,7 @@ static void rcu_spawn_cpu_nocb_kthread(int cpu)
|
|||
struct rcu_data *rdp = per_cpu_ptr(&rcu_data, cpu);
|
||||
struct rcu_data *rdp_gp;
|
||||
struct task_struct *t;
|
||||
struct sched_param sp;
|
||||
|
||||
if (!rcu_scheduler_fully_active || !rcu_nocb_is_setup)
|
||||
return;
|
||||
|
@ -1248,6 +1249,7 @@ static void rcu_spawn_cpu_nocb_kthread(int cpu)
|
|||
return;
|
||||
|
||||
/* If we didn't spawn the GP kthread first, reorganize! */
|
||||
sp.sched_priority = kthread_prio;
|
||||
rdp_gp = rdp->nocb_gp_rdp;
|
||||
mutex_lock(&rdp_gp->nocb_gp_kthread_mutex);
|
||||
if (!rdp_gp->nocb_gp_kthread) {
|
||||
|
@ -1258,6 +1260,8 @@ static void rcu_spawn_cpu_nocb_kthread(int cpu)
|
|||
return;
|
||||
}
|
||||
WRITE_ONCE(rdp_gp->nocb_gp_kthread, t);
|
||||
if (kthread_prio)
|
||||
sched_setscheduler_nocheck(t, SCHED_FIFO, &sp);
|
||||
}
|
||||
mutex_unlock(&rdp_gp->nocb_gp_kthread_mutex);
|
||||
|
||||
|
|
Loading…
Reference in New Issue