The tick when exit idle for nohz_full cpu

From: Jiang, Yunhong
Date: Wed Sep 02 2015 - 21:46:30 EST

Hi, Frederic
I noticed currently the tick_nohz_idle_exit() will always restart the sched_tick, even when it's on the nohz_full cpu. I'm not sure if we can keep the sched_tick stopped if it's on a nohz_full_cpu. The sched tick will be enabled on tick_nohz_task_switch() if needed. Is it ok to keep the sched tick off in the scheduling process?

Something like followed patch (just to show the idea).


diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 3319e16..7519a0f 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -909,8 +909,9 @@ void tick_nohz_idle_exit(void)
tick_nohz_stop_idle(ts, now);

if (ts->tick_stopped) {
- tick_nohz_restart_sched_tick(ts, now);
+ if (!tick_nohz_full_cpu(smp_processor_id()))
+ tick_nohz_restart_sched_tick(ts, now);

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at