[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] amd xsave: Enable SVM intercept for xsetbv instruction.



# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1291746499 0
# Node ID da2407300a6d206b479f6f8ecb398b7414f0509a
# Parent  066c924ed467c7931e22d597eefc7ca89d782611
amd xsave: Enable SVM intercept for xsetbv instruction.

SVM introduces an intercept control bit for xsetbv instruction. This
patches enables xsetbv intercept for SVM.

Signed-off-by: Wei Huang <wei.huang2@xxxxxxx>
---
 xen/arch/x86/hvm/svm/emulate.c     |    2 +-
 xen/arch/x86/hvm/svm/vmcb.c        |    3 ++-
 xen/include/asm-x86/hvm/svm/vmcb.h |    3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff -r 066c924ed467 -r da2407300a6d xen/arch/x86/hvm/svm/emulate.c
--- a/xen/arch/x86/hvm/svm/emulate.c    Tue Dec 07 18:27:40 2010 +0000
+++ b/xen/arch/x86/hvm/svm/emulate.c    Tue Dec 07 18:28:19 2010 +0000
@@ -76,7 +76,7 @@ static unsigned long svm_nextrip_insn_le
         /* (exitcodes 84-95) are reserved */
     case VMEXIT_IDTR_READ ... VMEXIT_TR_WRITE:
     case VMEXIT_RDTSC ... VMEXIT_MSR:
-    case VMEXIT_VMRUN ...  VMEXIT_MWAIT_CONDITIONAL:
+    case VMEXIT_VMRUN ...  VMEXIT_XSETBV:
         /* ...and the rest of the #VMEXITs */
     case VMEXIT_CR0_SEL_WRITE:
     case VMEXIT_EXCEPTION_BP:
diff -r 066c924ed467 -r da2407300a6d xen/arch/x86/hvm/svm/vmcb.c
--- a/xen/arch/x86/hvm/svm/vmcb.c       Tue Dec 07 18:27:40 2010 +0000
+++ b/xen/arch/x86/hvm/svm/vmcb.c       Tue Dec 07 18:28:19 2010 +0000
@@ -127,7 +127,8 @@ static int construct_vmcb(struct vcpu *v
         GENERAL2_INTERCEPT_VMLOAD      | GENERAL2_INTERCEPT_VMSAVE      |
         GENERAL2_INTERCEPT_STGI        | GENERAL2_INTERCEPT_CLGI        |
         GENERAL2_INTERCEPT_SKINIT      | GENERAL2_INTERCEPT_MWAIT       |
-        GENERAL2_INTERCEPT_WBINVD      | GENERAL2_INTERCEPT_MONITOR;
+        GENERAL2_INTERCEPT_WBINVD      | GENERAL2_INTERCEPT_MONITOR     |
+        GENERAL2_INTERCEPT_XSETBV;
 
     /* Intercept all debug-register writes. */
     vmcb->dr_intercepts = ~0u;
diff -r 066c924ed467 -r da2407300a6d xen/include/asm-x86/hvm/svm/vmcb.h
--- a/xen/include/asm-x86/hvm/svm/vmcb.h        Tue Dec 07 18:27:40 2010 +0000
+++ b/xen/include/asm-x86/hvm/svm/vmcb.h        Tue Dec 07 18:28:19 2010 +0000
@@ -76,7 +76,8 @@ enum GenericIntercept2bits
     GENERAL2_INTERCEPT_WBINVD  = 1 << 9,
     GENERAL2_INTERCEPT_MONITOR = 1 << 10,
     GENERAL2_INTERCEPT_MWAIT   = 1 << 11,
-    GENERAL2_INTERCEPT_MWAIT_CONDITIONAL = 1 << 12
+    GENERAL2_INTERCEPT_MWAIT_CONDITIONAL = 1 << 12,
+    GENERAL2_INTERCEPT_XSETBV  = 1 << 13
 };
 
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.