Skip to content

Commit

Permalink
clocksource/drivers/hyper-v: Make sched clock return nanoseconds corr…
Browse files Browse the repository at this point in the history
…ectly

The sched clock read functions return the HV clock (100ns granularity)
without converting it to nanoseconds.

Add the missing conversion.

Fixes: bd00cd5 ("clocksource/drivers/hyperv: Add Hyper-V specific sched clock function")
Signed-off-by: Yubo Xie <yuboxie@microsoft.com>
Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20200327021159.31429-1-Tianyu.Lan@microsoft.com
  • Loading branch information
Yubo Xie authored and Thomas Gleixner committed Mar 27, 2020
1 parent 5ad0ec0 commit 749da8c
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/clocksource/hyperv_timer.c
Original file line number Diff line number Diff line change
@@ -343,7 +343,8 @@ static u64 notrace read_hv_clock_tsc_cs(struct clocksource *arg)

static u64 read_hv_sched_clock_tsc(void)
{
return read_hv_clock_tsc() - hv_sched_clock_offset;
return (read_hv_clock_tsc() - hv_sched_clock_offset) *
(NSEC_PER_SEC / HV_CLOCK_HZ);
}

static void suspend_hv_clock_tsc(struct clocksource *arg)
@@ -398,7 +399,8 @@ static u64 notrace read_hv_clock_msr_cs(struct clocksource *arg)

static u64 read_hv_sched_clock_msr(void)
{
return read_hv_clock_msr() - hv_sched_clock_offset;
return (read_hv_clock_msr() - hv_sched_clock_offset) *
(NSEC_PER_SEC / HV_CLOCK_HZ);
}

static struct clocksource hyperv_cs_msr = {

0 comments on commit 749da8c

Please sign in to comment.