|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] RE: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTS
Is this patch supposed to allow an application
in an HVM domain to successfully execute an rdtscp
instruction even on a processor that doesn't have
hardware support for the instruction?
If so, I tried it and it doesn't seem to work.
The app segfaults (same, I think, as it did before
the patch).
> -----Original Message-----
> From: Xen patchbot-unstable
> [mailto:patchbot-unstable@xxxxxxxxxxxxxxxxxxx]
> Sent: Wednesday, December 16, 2009 7:00 AM
> To: xen-changelog@xxxxxxxxxxxxxxxxxxx
> Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP
> instruction.
>
>
> # HG changeset patch
> # User Keir Fraser <keir.fraser@xxxxxxxxxx>
> # Date 1260967518 0
> # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331
> # Parent b543acc1aaad743f20e8ee44ab048ca239350685
> x86_emulate: Emulate RDTSCP instruction.
>
> Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
> ---
> xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++-
> 1 files changed, 12 insertions(+), 1 deletion(-)
>
> diff -r b543acc1aaad -r cbcb3d564b2f
> xen/arch/x86/x86_emulate/x86_emulate.c
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16
> 12:32:35 2009 +0000
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16
> 12:45:18 2009 +0000
> @@ -292,6 +292,7 @@ struct operand {
> #define MSR_LSTAR 0xc0000082
> #define MSR_CSTAR 0xc0000083
> #define MSR_FMASK 0xc0000084
> +#define MSR_TSC_AUX 0xc0000103
>
> /* Control register flags. */
> #define CR0_PE (1<<0)
> @@ -3503,6 +3504,16 @@ x86_emulate(
> break;
> }
>
> + if ( modrm == 0xf9 ) /* rdtscp */
> + {
> + uint64_t tsc_aux;
> + fail_if(ops->read_msr == NULL);
> + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux,
> ctxt)) != 0 )
> + goto done;
> + _regs.ecx = (uint32_t)tsc_aux;
> + goto rdtsc;
> + }
> +
> switch ( modrm_reg & 7 )
> {
> case 0: /* sgdt */
> @@ -3712,7 +3723,7 @@ x86_emulate(
> break;
> }
>
> - case 0x31: /* rdtsc */ {
> + case 0x31: rdtsc: /* rdtsc */ {
> unsigned long cr4;
> uint64_t val;
> if ( !mode_ring0() )
>
> _______________________________________________
> Xen-changelog mailing list
> Xen-changelog@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-changelog
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] RE: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.,
Dan Magenheimer <=
|
|
|
|
|