Description
In the discussion of #12332 it was determined that the timer updates around 2018-09 through 2018-10 resulted in an unintentional change of behavior for CONFIG_TICKLESS_KERNEL=n
.
Prior to the rework the system clock advanced by one tick on each interrupt, regardless of whether the interrupt was serviced late.
Support for CONFIG_TICKLESS_KERNEL=y
inadvertently changed this so that the system clock was advanced by the number of ticks required to align it with the divided hardware clock, regardless of the value of CONFIG_TICKLESS_KERNEL
.
The timer implementations need to be reworked so that for CONFIG_TICKLESS_KERNEL=n
the original behavior is restored. Note that this will result in an non-linear relation between the hardware and system clocks if the tick interrupt is delayed by at least sys_clock_hw_cycles_per_tick()
.