On Wed, Sep 04, 2013 at 03:16:30PM +0000, KY Srinivasan wrote: > > > > -----Original Message----- > > From: Gleb Natapov [mailto:gleb@xxxxxxxxxx] > > Sent: Wednesday, September 04, 2013 2:40 AM > > To: KY Srinivasan > > Cc: x86@xxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > > devel@xxxxxxxxxxxxxxxxxxxxxx; olaf@xxxxxxxxx; apw@xxxxxxxxxxxxx; > > jasowang@xxxxxxxxxx; tglx@xxxxxxxxxxxxx; hpa@xxxxxxxxx; > > JBeulich@xxxxxxxx; bp@xxxxxxxxx > > Subject: Re: [PATCH V2 1/1] X86: Hyper-V: Get the local APIC timer frequency > > from the hypervisor > > > > On Tue, Sep 03, 2013 at 11:30:23AM -0700, K. Y. Srinivasan wrote: > > > Hyper-V supports a mechanism for retrieving the local APIC frequency.Use this > > and bypass > > > the calibration code in the kernel. This would allow us to boot the Linux kernel > > as a > > > "modern VM" on Hyper-V where many of the legacy devices (such as PIT) are > > not emulated. > > > > > > I would like to thank Olaf Hering <olaf@xxxxxxxxx>, Jan Beulich > > <JBeulich@xxxxxxxx> and > > > H. Peter Anvin <h.peter.anvin@xxxxxxxxx> for their help in this effort. > > > > > > In this version of the patch, I have addressed Jan's comments. > > > > > > Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > > > --- > > > arch/x86/include/uapi/asm/hyperv.h | 19 +++++++++++++++++++ > > > arch/x86/kernel/cpu/mshyperv.c | 24 ++++++++++++++++++++++++ > > > 2 files changed, 43 insertions(+), 0 deletions(-) > > > > > > diff --git a/arch/x86/include/uapi/asm/hyperv.h > > b/arch/x86/include/uapi/asm/hyperv.h > > > index b80420b..b8f1c01 100644 > > > --- a/arch/x86/include/uapi/asm/hyperv.h > > > +++ b/arch/x86/include/uapi/asm/hyperv.h > > > @@ -27,6 +27,19 @@ > > > #define HV_X64_MSR_VP_RUNTIME_AVAILABLE (1 << 0) > > > /* Partition Reference Counter (HV_X64_MSR_TIME_REF_COUNT) available*/ > > > #define HV_X64_MSR_TIME_REF_COUNT_AVAILABLE (1 << 1) > > > + > > > +/* > > > + * There is a single feature flag that signifies the presence of the MSR > > > + * that can be used to retrieve both the local APIC Timer frequency as > > > + * well as the TSC frequency. > > > + */ > > > + > > > +/* Local APIC timer frequency MSR (HV_X64_MSR_APIC_FREQUENCY) is > > available */ > > > +#define HV_X64_MSR_APIC_FREQUENCY_AVAILABLE (1 << 11) > > > + > > > +/* TSC frequency MSR (HV_X64_MSR_TSC_FREQUENCY) is available */ > > > +#define HV_X64_MSR_TSC_FREQUENCY_AVAILABLE (1 << 11) > > > + > > > /* > > > * Basic SynIC MSRs (HV_X64_MSR_SCONTROL through HV_X64_MSR_EOM > > > * and HV_X64_MSR_SINT0 through HV_X64_MSR_SINT15) available > > > @@ -136,6 +149,12 @@ > > > /* MSR used to read the per-partition time reference counter */ > > > #define HV_X64_MSR_TIME_REF_COUNT 0x40000020 > > > > > > +/* MSR used to retrieve the TSC frequency */ > > > +#define HV_X64_MSR_TSC_FREQUENCY 0x40000022 > > > + > > You do not use this MSR in the patch, but in general how it suppose to > > work during migration if host TSC frequency changes? > > TSC related migration issues are distinct from how we calibrate the TSC frequency. This MSR > allows you to retrieve the TSC frequency without having to do explicit calibration. > But the value retrieved can be obsolete by the time guest sues it due to migration. > To address the migration issues; the hypervisor provides additional information on the host > that you are running that can be used to compensate for differences in TSC across hosts. > Are you referring to "Reference TSC Page" here? -- Gleb. _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel