RE: [tip:x86/platform] x86/hyperv: Mark the Hyper-V TSC as unstable

From: KY Srinivasan
Date: Fri Aug 21 2015 - 11:36:04 EST




> -----Original Message-----
> From: Peter Zijlstra [mailto:peterz@xxxxxxxxxxxxx]
> Sent: Friday, August 21, 2015 7:34 AM
> To: mingo@xxxxxxxxxx; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>;
> tglx@xxxxxxxxxxxxx; hpa@xxxxxxxxx; vkuznets@xxxxxxxxxx; KY Srinivasan
> <kys@xxxxxxxxxxxxx>; torvalds@xxxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Cc: linux-tip-commits@xxxxxxxxxxxxxxx
> Subject: Re: [tip:x86/platform] x86/hyperv: Mark the Hyper-V TSC as
> unstable
>
> On Fri, Aug 21, 2015 at 12:45:50AM -0700, tip-bot for Vitaly Kuznetsov wrote:
> > Commit-ID: 88c9281a9fba67636ab26c1fd6afbc78a632374f
> > Gitweb:
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fgit.kern
> el.org%2ftip%2f88c9281a9fba67636ab26c1fd6afbc78a632374f&data=01%7c01
> %7ckys%40microsoft.com%7cca840f9ebba34958dc9a08d2aa35a6c4%7c72f988
> bf86f141af91ab2d7cd011db47%7c1&sdata=hzE233wXaLAYShWPE18SQJQvQe
> JguAdB6oj%2bF%2blx7Ok%3d
> > Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
> > AuthorDate: Wed, 19 Aug 2015 09:54:24 -0700
> > Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> > CommitDate: Fri, 21 Aug 2015 08:44:38 +0200
> >
> > x86/hyperv: Mark the Hyper-V TSC as unstable
> >
> > The Hyper-V top-level functional specification states, that
> > "algorithms should be resilient to sudden jumps forward or
> > backward in the TSC value", this means that we should consider
> > TSC as unstable. In some cases tsc tests are able to detect the
> > instability, it was detected in 543 out of 646 boots in my
> > testing:
> >
> > Measured 6277 cycles TSC warp between CPUs, turning off TSC clock.
> > tsc: Marking TSC unstable due to check_tsc_sync_source failed
> >
> > This is, however, just a heuristic. On Hyper-V platform there
> > are two good clocksources: MSR-based hyperv_clocksource and
> > recently introduced TSC page.
>
> *groan*.. and where are the paravirt ops like pv_time_ops for hyperv to
> fix up this mess?

We register external clocksource and clockevents devices based on a hypervisor based time source and
timers to deal with this issue.

Regards,

K. Y
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/