tick/nohz: Update idle_exittime on actual idle exit
authorYunfeng Ye <yeyunfeng@huawei.com>
Wed, 12 May 2021 23:29:18 +0000 (01:29 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 13 May 2021 12:21:21 +0000 (14:21 +0200)
commit96c9b90396f9ab6caf13b4ebf00095818ac53b7f
tree19d3ea6ab24929a65e48030c9a5ac391a237c85d
parent3f624314b3f7c580aa5844a8930befd71e2a287c
tick/nohz: Update idle_exittime on actual idle exit

The idle_exittime field of tick_sched is used to record the time when
the idle state was left. but currently the idle_exittime is updated in
the function tick_nohz_restart_sched_tick(), which is not always in idle
state when nohz_full is configured:

  tick_irq_exit
    tick_nohz_irq_exit
      tick_nohz_full_update_tick
        tick_nohz_restart_sched_tick
          ts->idle_exittime = now;

It's thus overwritten by mistake on nohz_full tick restart. Move the
update to the appropriate idle exit path instead.

Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210512232924.150322-5-frederic@kernel.org
kernel/time/tick-sched.c