From: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Sent: Friday, May 19, 2023 3:21 AM > > Hi All, > > latest version of the local_clock_noinstr() patches. > > Most of the changes are in Hyper-V and x86/vdso/gettimeofday; Michael has been > very helpful navigating the Hyper-V spec and fixing their sched_clock > implementation. > > --- > arch/arm64/include/asm/arch_timer.h | 8 +---- > arch/arm64/include/asm/io.h | 12 +++---- > arch/loongarch/include/asm/loongarch.h | 2 +- > arch/loongarch/kernel/time.c | 6 ++-- > arch/s390/include/asm/timex.h | 13 ++++--- > arch/s390/kernel/time.c | 5 +++ > arch/x86/include/asm/mshyperv.h | 5 +++ > arch/x86/include/asm/vdso/gettimeofday.h | 41 ++++++++++++++++------ > arch/x86/kernel/kvmclock.c | 4 +-- > arch/x86/kernel/tsc.c | 38 +++++++++++++++----- > arch/x86/kvm/x86.c | 7 ++-- > arch/x86/xen/time.c | 3 +- > drivers/clocksource/arm_arch_timer.c | 60 ++++++++++++++++++++++++-------- > drivers/clocksource/hyperv_timer.c | 44 ++++++++++++++--------- > drivers/cpuidle/cpuidle.c | 8 ++--- > drivers/cpuidle/poll_state.c | 4 +-- > include/clocksource/hyperv_timer.h | 24 +++++-------- > include/linux/math64.h | 2 +- > include/linux/rbtree_latch.h | 2 +- > include/linux/sched/clock.h | 17 ++++++++- > include/linux/seqlock.h | 15 ++++---- > kernel/printk/printk.c | 2 +- > kernel/sched/clock.c | 19 ++++++---- > kernel/time/sched_clock.c | 24 +++++++++---- > kernel/time/timekeeping.c | 4 +-- > 25 files changed, 242 insertions(+), 127 deletions(-) Based on linux-next20230519, tested the full series in a Hyper-V VM on x86/x64. Did mainly a basic smoke test. Sched clock appears to work correctly. Verified correct operation of the TSC page clocksource and the MSR-based clocksource. Verified that vDSO gettimeofday() works with the Hyper-V TSC page clocksource and is correctly disabled with the Hyper-V MSR-based clocksource. Tested in a normal VM and in an "SEV-SNP with vTOM" VM. Tested-by: Michael Kelley <mikelley@xxxxxxxxxxxxx> # Hyper-V