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

[Xen-changelog] [xen-unstable] hvm, xentrace: Extend HVMTRACE_ND so that a modifier to the basic



# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1302789264 -3600
# Node ID 757460e1ec487a5c2b78e6f7d667db826fa5a4a0
# Parent  3f00c5faa12aed4d0993391f71b7f12cf92f0208
hvm, xentrace: Extend HVMTRACE_ND so that a modifier to the basic
event reason can be ORed into the trace record.

Signed-off-by: Keir Fraser <keir@xxxxxxx>
---


diff -r 3f00c5faa12a -r 757460e1ec48 xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c        Wed Apr 13 16:10:26 2011 +0100
+++ b/xen/arch/x86/hvm/svm/svm.c        Thu Apr 14 14:54:24 2011 +0100
@@ -1729,11 +1729,11 @@
     }
 
     if ( hvm_long_mode_enabled(v) )
-        HVMTRACE_ND(VMEXIT64, 1/*cycles*/, 3, exit_reason,
+        HVMTRACE_ND(VMEXIT64, 0, 1/*cycles*/, 3, exit_reason,
                     (uint32_t)regs->eip, (uint32_t)((uint64_t)regs->eip >> 32),
                     0, 0, 0);
     else
-        HVMTRACE_ND(VMEXIT, 1/*cycles*/, 2, exit_reason,
+        HVMTRACE_ND(VMEXIT, 0, 1/*cycles*/, 2, exit_reason,
                     (uint32_t)regs->eip, 
                     0, 0, 0, 0);
 
@@ -2014,7 +2014,7 @@
 
 asmlinkage void svm_trace_vmentry(void)
 {
-    HVMTRACE_ND (VMENTRY, 1/*cycles*/, 0, 0, 0, 0, 0, 0, 0);
+    HVMTRACE_ND(VMENTRY, 0, 1/*cycles*/, 0, 0, 0, 0, 0, 0, 0);
 }
   
 /*
diff -r 3f00c5faa12a -r 757460e1ec48 xen/arch/x86/hvm/vmx/vmx.c
--- a/xen/arch/x86/hvm/vmx/vmx.c        Wed Apr 13 16:10:26 2011 +0100
+++ b/xen/arch/x86/hvm/vmx/vmx.c        Thu Apr 14 14:54:24 2011 +0100
@@ -2251,11 +2251,11 @@
     exit_reason = __vmread(VM_EXIT_REASON);
 
     if ( hvm_long_mode_enabled(v) )
-        HVMTRACE_ND(VMEXIT64, 1/*cycles*/, 3, exit_reason,
+        HVMTRACE_ND(VMEXIT64, 0, 1/*cycles*/, 3, exit_reason,
                     (uint32_t)regs->eip, (uint32_t)((uint64_t)regs->eip >> 32),
                     0, 0, 0);
     else
-        HVMTRACE_ND(VMEXIT, 1/*cycles*/, 2, exit_reason,
+        HVMTRACE_ND(VMEXIT, 0, 1/*cycles*/, 2, exit_reason,
                     (uint32_t)regs->eip, 
                     0, 0, 0, 0);
 
@@ -2699,7 +2699,7 @@
         vpid_sync_all();
 
  out:
-    HVMTRACE_ND (VMENTRY, 1/*cycles*/, 0, 0, 0, 0, 0, 0, 0);
+    HVMTRACE_ND(VMENTRY, 0, 1/*cycles*/, 0, 0, 0, 0, 0, 0, 0);
 }
 
 /*
diff -r 3f00c5faa12a -r 757460e1ec48 xen/include/asm-x86/hvm/trace.h
--- a/xen/include/asm-x86/hvm/trace.h   Wed Apr 13 16:10:26 2011 +0100
+++ b/xen/include/asm-x86/hvm/trace.h   Thu Apr 14 14:54:24 2011 +0100
@@ -58,38 +58,38 @@
 #define TRC_PAR_LONG(par) (par)
 #endif
 
-#define HVMTRACE_ND(evt, cycles, count, d1, d2, d3, d4, d5, d6)         \
-    do {                                                                \
-        if ( unlikely(tb_init_done) && DO_TRC_HVM_ ## evt )             \
-        {                                                               \
-            struct {                                                    \
-                u32 d[6];                                               \
-            } _d;                                                       \
-            _d.d[0]=(d1);                                               \
-            _d.d[1]=(d2);                                               \
-            _d.d[2]=(d3);                                               \
-            _d.d[3]=(d4);                                               \
-            _d.d[4]=(d5);                                               \
-            _d.d[5]=(d6);                                               \
-            __trace_var(TRC_HVM_ ## evt, cycles,                        \
-                        sizeof(*_d.d) * count, &_d);                    \
-        }                                                               \
+#define HVMTRACE_ND(evt, modifier, cycles, count, d1, d2, d3, d4, d5, d6) \
+    do {                                                                  \
+        if ( unlikely(tb_init_done) && DO_TRC_HVM_ ## evt )               \
+        {                                                                 \
+            struct {                                                      \
+                u32 d[6];                                                 \
+            } _d;                                                         \
+            _d.d[0]=(d1);                                                 \
+            _d.d[1]=(d2);                                                 \
+            _d.d[2]=(d3);                                                 \
+            _d.d[3]=(d4);                                                 \
+            _d.d[4]=(d5);                                                 \
+            _d.d[5]=(d6);                                                 \
+            __trace_var(TRC_HVM_ ## evt | (modifier), cycles,             \
+                        sizeof(*_d.d) * count, &_d);                      \
+        }                                                                 \
     } while(0)
 
 #define HVMTRACE_6D(evt, d1, d2, d3, d4, d5, d6)    \
-                      HVMTRACE_ND(evt, 0, 6, d1, d2, d3,  d4, d5, d6)
+    HVMTRACE_ND(evt, 0, 0, 6, d1, d2, d3, d4, d5, d6)
 #define HVMTRACE_5D(evt, d1, d2, d3, d4, d5)        \
-                      HVMTRACE_ND(evt, 0, 5, d1, d2, d3,  d4, d5, 0)
-#define HVMTRACE_4D(evt, d1, d2, d3, d4)               \
-                      HVMTRACE_ND(evt, 0, 4, d1, d2, d3,  d4, 0, 0)
-#define HVMTRACE_3D(evt, d1, d2, d3)                   \
-                      HVMTRACE_ND(evt, 0, 3, d1, d2, d3,  0, 0, 0)
-#define HVMTRACE_2D(evt, d1, d2)                       \
-                      HVMTRACE_ND(evt, 0, 2, d1, d2,  0,  0, 0, 0)
-#define HVMTRACE_1D(evt, d1)                           \
-                      HVMTRACE_ND(evt, 0, 1, d1,  0,  0,  0, 0, 0)
-#define HVMTRACE_0D(evt)                               \
-                      HVMTRACE_ND(evt, 0, 0, 0,  0,  0,  0, 0, 0)
+    HVMTRACE_ND(evt, 0, 0, 5, d1, d2, d3, d4, d5,  0)
+#define HVMTRACE_4D(evt, d1, d2, d3, d4)            \
+    HVMTRACE_ND(evt, 0, 0, 4, d1, d2, d3, d4,  0,  0)
+#define HVMTRACE_3D(evt, d1, d2, d3)                \
+    HVMTRACE_ND(evt, 0, 0, 3, d1, d2, d3,  0,  0,  0)
+#define HVMTRACE_2D(evt, d1, d2)                    \
+    HVMTRACE_ND(evt, 0, 0, 2, d1, d2,  0,  0,  0,  0)
+#define HVMTRACE_1D(evt, d1)                        \
+    HVMTRACE_ND(evt, 0, 0, 1, d1,  0,  0,  0,  0,  0)
+#define HVMTRACE_0D(evt)                            \
+    HVMTRACE_ND(evt, 0, 0, 0,  0,  0,  0,  0,  0,  0)
 
 
 

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