linux/kernel/time
Anna-Maria Behnsen d05eae8776 timekeeping: Rework timekeeping_suspend() to use shadow_timekeeper
Updates of the timekeeper can be done by operating on the shadow timekeeper
and afterwards copying the result into the real timekeeper. This has the
advantage, that the sequence count write protected region is kept as small
as possible.

While the sequence count held time is not relevant for the resume path as
there is no concurrency, there is no reason to have this function
different than all the other update sites.

Convert timekeeping_inject_offset() to use this scheme and cleanup the
variable declarations while at it.

As halt_fast_timekeeper() does not need protection sequence counter, it is
no problem to move it with this change outside of the sequence counter
protected area. But it still needs to be executed while holding the lock.

Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/all/20241009-devel-anna-maria-b4-timers-ptp-timekeeping-v2-22-554456a44a15@linutronix.de
2024-10-25 19:49:15 +02:00
..
alarmtimer.c treewide: Fix wrong singular form of jiffies in comments 2024-09-08 20:47:40 +02:00
clockevents.c treewide: Fix wrong singular form of jiffies in comments 2024-09-08 20:47:40 +02:00
clocksource-wdtest.c
clocksource.c clocksource: Remove unused clocksource_change_rating 2024-10-10 21:03:10 +02:00
hrtimer.c timers: Move *sleep*() and timeout functions into a separate file 2024-10-16 00:36:46 +02:00
itimer.c
jiffies.c
Kconfig
Makefile timers: Move *sleep*() and timeout functions into a separate file 2024-10-16 00:36:46 +02:00
namespace.c
ntp.c ntp: Move pps monitors into ntp_data 2024-10-02 16:53:41 +02:00
ntp_internal.h ntp: Make sure RTC is synchronized when time goes backwards 2024-09-10 13:50:40 +02:00
posix-clock.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
posix-cpu-timers.c posix-timers: Consolidate signal queueing 2024-07-29 21:57:35 +02:00
posix-stubs.c
posix-timers.c posix-timers: Replace call_rcu() by kfree_rcu() for simple kmem_cache_free() callback 2024-10-24 11:22:54 +02:00
posix-timers.h posix-timers: Consolidate signal queueing 2024-07-29 21:57:35 +02:00
sched_clock.c
sleep_timeout.c timers: Add a warning to usleep_range_state() for wrong order of arguments 2024-10-16 00:36:47 +02:00
test_udelay.c
tick-broadcast-hrtimer.c
tick-broadcast.c tick/broadcast: Move per CPU pointer access into the atomic section 2024-07-31 12:37:43 +02:00
tick-common.c
tick-internal.h
tick-legacy.c
tick-oneshot.c
tick-sched.c tick/sched: Combine WARN_ON_ONCE and print_once 2024-07-03 21:32:55 +02:00
tick-sched.h
time.c time: Remove '%' from numeric constant in kernel-doc comment 2024-10-16 00:30:26 +02:00
time_test.c
timeconst.bc
timeconv.c
timecounter.c
timekeeping.c timekeeping: Rework timekeeping_suspend() to use shadow_timekeeper 2024-10-25 19:49:15 +02:00
timekeeping.h
timekeeping_debug.c timekeeping: Add percpu counter for tracking floor swap events 2024-10-06 20:56:07 +02:00
timekeeping_internal.h timekeeping: Encapsulate locking/unlocking of timekeeper_lock 2024-10-25 19:49:13 +02:00
timer.c timers: Move *sleep*() and timeout functions into a separate file 2024-10-16 00:36:46 +02:00
timer_list.c
timer_migration.c timers/migration: Fix grammar in comment 2024-07-22 18:03:34 +02:00
timer_migration.h timers/migration: Rename childmask by groupmask to make naming more obvious 2024-07-22 18:03:34 +02:00
vsyscall.c timekeeping: Encapsulate locking/unlocking of timekeeper_lock 2024-10-25 19:49:13 +02:00