# 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 
- List: linux-hyperv
- Page: https://ratatoskr.run/linux-hyperv/2019/08/5685265
- Thread: https://ratatoskr.run/linux-hyperv/2019/07/5669607/t.md

```text
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>
```
