Commit 77865dea authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcu: Grace-period-kthread related sleeps to idle priority



This commit converts the long-standing schedule_timeout_interruptible()
and schedule_timeout_uninterruptible() calls used by RCU's grace-period
kthread to schedule_timeout_idle().  This conversion avoids polluting
the load-average with RCU-related sleeping.

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 88748e33
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1638,7 +1638,7 @@ static void rcu_gp_slow(int delay)
	if (delay > 0 &&
	    !(rcu_seq_ctr(rcu_state.gp_seq) %
	      (rcu_num_nodes * PER_RCU_NODE_PERIOD * delay)))
		schedule_timeout_uninterruptible(delay);
		schedule_timeout_idle(delay);
}

static unsigned long sleep_duration;
@@ -1661,7 +1661,7 @@ static void rcu_gp_torture_wait(void)
	duration = xchg(&sleep_duration, 0UL);
	if (duration > 0) {
		pr_alert("%s: Waiting %lu jiffies\n", __func__, duration);
		schedule_timeout_uninterruptible(duration);
		schedule_timeout_idle(duration);
		pr_alert("%s: Wait complete\n", __func__);
	}
}
@@ -2727,7 +2727,7 @@ static void rcu_cpu_kthread(unsigned int cpu)
	}
	*statusp = RCU_KTHREAD_YIELDING;
	trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield"));
	schedule_timeout_interruptible(2);
	schedule_timeout_idle(2);
	trace_rcu_utilization(TPS("End CPU kthread@rcu_yield"));
	*statusp = RCU_KTHREAD_WAITING;
}