From: Tianyu Lan <[email protected]>  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 <[email protected]>
> ---
>  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 <[email protected]>

Reply via email to