[GIT PULL] Timer subsystem changes for v6.8

From: Ingo Molnar
Date: Mon Jan 08 2024 - 05:44:14 EST


Linus,

Please pull the latest timers/core git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-core-2024-01-08

# HEAD: da65f29dada7f7cbbf0d6375b88a0316f5f7d6f5 timers: Fix nextevt calculation when no timers are pending

Timer subsystem changes for v6.8:

- Various preparatory cleanups & enhancements of the timer-wheel code,
in preparation for the WIP 'pull timers at expiry' timer migration model
series (which will replace the current 'push timers at enqueue' migration
model), by Anna-Maria Behnsen:

- Update comments and clean up confusing variable names

- Add debug check to warn about time travel

- Improve/expand timer-wheel tracepoints

- Optimize away unnecessary IPIs for deferrable timers

- Restructure & clean up next_expiry_recalc()

- Clean up forward_timer_base()

- Introduce __forward_timer_base() and use it to simplify
and micro-optimize get_next_timer_interrupt()

- Restructure the get_next_timer_interrupt()'s idle logic
for better readability and to enable a minor optimization.

- Fix the nextevt calculation when no timers are pending

- Fix the sysfs_get_uname() prototype declaration

Thanks,

Ingo

------------------>
Anna-Maria Behnsen (11):
tick-sched: Fix function names in comments
tick/sched: Cleanup confusing variables
tick-sched: Warn when next tick seems to be in the past
tracing/timers: Enhance timer_start tracepoint
tracing/timers: Add tracepoint for tracking timer base is_idle flag
timers: Do not IPI for deferrable timers
timers: Move store of next event into __next_timer_interrupt()
timers: Clarify check in forward_timer_base()
timers: Split out forward timer base functionality
timers: Use already existing function for forwarding timer base
timers: Fix nextevt calculation when no timers are pending

Arnd Bergmann (1):
time: Make sysfs_get_uname() function visible in header

Thomas Gleixner (1):
timers: Rework idle logic


include/trace/events/timer.h | 40 +++++++++++----
kernel/time/tick-internal.h | 3 +-
kernel/time/tick-sched.c | 25 ++++++----
kernel/time/timer.c | 116 ++++++++++++++++++++++++-------------------
4 files changed, 112 insertions(+), 72 deletions(-)