sched: idle: Avoid retaining the tick when it has been stopped
commit 7059b36636beab57c3c43c62104483e5449bee95 upstream. If the tick has been stopped already, but the governor has not asked to stop it (which it can do sometimes), the idle loop should invoke tick_nohz_idle_stop_tick(), to let tick_nohz_stop_tick() take care of this case properly. Fixes: 554c8aa8ecad (sched: idle: Select idle state before stopping the tick) Cc: 4.17+ <stable@vger.kernel.org> # 4.17+ Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fe759487ee
commit
cc8ea9dd0c
@ -190,7 +190,7 @@ static void cpuidle_idle_call(void)
|
||||
*/
|
||||
next_state = cpuidle_select(drv, dev, &stop_tick);
|
||||
|
||||
if (stop_tick)
|
||||
if (stop_tick || tick_nohz_tick_stopped())
|
||||
tick_nohz_idle_stop_tick();
|
||||
else
|
||||
tick_nohz_idle_retain_tick();
|
||||
|
Loading…
x
Reference in New Issue
Block a user