[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] RE: Saving/Restoring IA32_TSC_AUX MSR
Hi Jun -- > But it's possible that multiple domains use the pvrdtscp > algorithm, and the incarnation number is domain specific. OK, I see. The code for writing TSC_AUX is in __update_vcpu_system_time() not in context switch. > We also have the issue when adding RDTSCP support for > HVM guests. Only if you expose the rdtscp bit via cpuid. This could certainly be done but, as I said, is probably pointless. (The pvrdtscp algorithm uses the instruction whether or not the rdtscp bit is set in cpuid, since Xen emulates it -- for PV domains only now -- if the physical machine doesn't support the instruction. Dan > -----Original Message----- > From: Nakajima, Jun [mailto:jun.nakajima@xxxxxxxxx] > Sent: Wednesday, December 09, 2009 10:08 AM > To: Dan Magenheimer; xen-devel@xxxxxxxxxxxxxxxxxxx > Subject: RE: Saving/Restoring IA32_TSC_AUX MSR > > > Dan Magenheimer wrote on Wed, 9 Dec 2009 at 08:59:59: > > > Hi Jun -- > > > > Dan, > > > Xen doesn't expose the TSC rdtscp bit so assumes that > > no guests depend on it. So no save/restore of TSC_AUX > > is necessary. Xen could provide support for the TSC > > But it's possible that multiple domains use the pvrdtscp > algorithm, and the incarnation number is domain specific. We > also have the issue when adding RDTSCP support for HVM guests. > > > rdtscp bit and allow a guest OS to manage TSC_AUX, but > > the existing use of TSC_AUX by Linux would fail to > > provide the desired result across migration, so there's > > little point. Also the pvrdtscp algorithm now assumes > > that Xen itself is responsible for updating TSC_AUX > > whenever a migration (across physical machines) occurs. > > > > The #define for write_rdtscp_aux is from Linux source, > > so I didn't change the code and define the constant. > > > > Dan > > > >> -----Original Message----- > >> From: Nakajima, Jun [mailto:jun.nakajima@xxxxxxxxx] > >> Sent: Wednesday, December 09, 2009 9:42 AM > >> To: xen-devel@xxxxxxxxxxxxxxxxxxx > >> Cc: Dan Magenheimer > >> Subject: Saving/Restoring IA32_TSC_AUX MSR > >> > >> > >> I see the code like (in arch/x86/time.c), and wondering how > >> IA32_TSC_AUX MSR is saved/restored at domain switch time. > >> > >> if ( (d->arch.tsc_mode == TSC_MODE_PVRDTSCP) && > >> boot_cpu_has(X86_FEATURE_RDTSCP) ) > >> write_rdtscp_aux(d->arch.incarnation); > >> > >> BTW, > >> > >> include/asm-x86/msr.h > >> #define write_rdtscp_aux(val) wrmsr(0xc0000103, (val), 0) > >> > >> We should write like wrmsr(MSR_TSC_AUX, (val), 0) by adding > >> +#define MSR_TSC_AUX 0xc0000103 /* Auxiliary TSC */ > >> in include/asm-x86/msr-index.h > >> > >> Thanks, > >> Jun > >> --- > >> Intel Open Source Technology Center > >> > >> > > Jun > ___ > Intel Open Source Technology Center > > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |