RE: [PATCH 2/2] clocksource/Hyper-V: Add Hyper-V specific sched clock function
From: Michael Kelley <hidden>
Date: 2019-08-12 18:42:22
Also in:
linux-arch, lkml
From: Michael Kelley <hidden>
Date: 2019-08-12 18:42:22
Also in:
linux-arch, lkml
From: Tianyu Lan <redacted> Sent: Monday, July 29, 2019 12:53 AM
Hyper-V guests use the default native_sched_clock() in pv_ops.time.sched_clock on x86. But native_sched_clock() directly uses the raw TSC value, which can be discontinuous in a Hyper-V VM. Add the generic hv_setup_sched_clock() to set the sched clock function appropriately. On x86, this sets pv_ops.time. sched_clock to read the Hyper-V reference TSC value that is scaled and adjusted to be continuous. Also move the Hyper-V reference TSC initialization much earlier in the boot process so no discontinuity is observed when pv_ops.time.sched_clock calculates its offset. Signed-off-by: Tianyu Lan <redacted> --- arch/x86/hyperv/hv_init.c | 2 -- arch/x86/kernel/cpu/mshyperv.c | 8 ++++++++ drivers/clocksource/hyperv_timer.c | 22 ++++++++++++---------- include/asm-generic/mshyperv.h | 1 + 4 files changed, 21 insertions(+), 12 deletions(-)
Reviewed-by: Michael Kelley <redacted>