hrtimer: Force clock_was_set() handling for the HIGHRES=n, NOHZ=y case
authorThomas Gleixner <tglx@linutronix.de>
Tue, 13 Jul 2021 13:39:49 +0000 (15:39 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 10 Aug 2021 15:57:22 +0000 (17:57 +0200)
commite71a4153b7c256ec103e79875398553808aeffd2
tree06d723abc900f8fe1ba2202375041ae76d4e0c3b
parent8c3b5e6ec0fee18bc2ce38d1dfe913413205f908
hrtimer: Force clock_was_set() handling for the HIGHRES=n, NOHZ=y case

When CONFIG_HIGH_RES_TIMERS is disabled, but NOHZ is enabled then
clock_was_set() is not doing anything. With HIGHRES=n the kernel relies on
the periodic tick to update the clock offsets, but when NOHZ is enabled and
active then CPUs which are in a deep idle sleep do not have a periodic tick
which means the expiry of timers affected by clock_was_set() can be
arbitrarily delayed up to the point where the CPUs are brought out of idle
again.

Make the clock_was_set() logic unconditionaly available so that idle CPUs
are kicked out of idle to handle the update.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210713135158.288697903@linutronix.de
kernel/time/hrtimer.c