Commit 1ca8ec53 authored by Wanpeng Li's avatar Wanpeng Li Committed by Thomas Gleixner

tick/nohz: Set the correct expiry when switching to nohz/lowres mode

commit 0ff53d09 sets the next tick interrupt to the last jiffies update,
i.e. in the past, because the forward operation is invoked before the set
operation. There is no resulting damage (yet), but we get an extra pointless
tick interrupt.

Revert the order so we get the next tick interrupt in the future.

Fixes: commit 0ff53d09 "tick: sched: Force tick interrupt and get rid of softirq magic"
Signed-off-by: default avatarWanpeng Li <wanpeng.li@hotmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1453893967-3458-1-git-send-email-wanpeng.li@hotmail.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent d7023e62
...@@ -995,9 +995,9 @@ static void tick_nohz_switch_to_nohz(void) ...@@ -995,9 +995,9 @@ static void tick_nohz_switch_to_nohz(void)
/* Get the next period */ /* Get the next period */
next = tick_init_jiffy_update(); next = tick_init_jiffy_update();
hrtimer_forward_now(&ts->sched_timer, tick_period);
hrtimer_set_expires(&ts->sched_timer, next); hrtimer_set_expires(&ts->sched_timer, next);
tick_program_event(next, 1); hrtimer_forward_now(&ts->sched_timer, tick_period);
tick_program_event(hrtimer_get_expires(&ts->sched_timer), 1);
tick_nohz_activate(ts, NOHZ_MODE_LOWRES); tick_nohz_activate(ts, NOHZ_MODE_LOWRES);
} }
......
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