This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] RE: Saving/Restoring IA32_TSC_AUX MSR

To: "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] RE: Saving/Restoring IA32_TSC_AUX MSR
From: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>
Date: Wed, 9 Dec 2009 08:59:59 -0800 (PST)
Delivery-date: Wed, 09 Dec 2009 09:01:15 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C08B02B7E75BDA4BBAA8F1648BDCC20D56E34A71@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi Jun --

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
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.


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

Xen-devel mailing list