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

[Xen-devel] [PATCH] xenalyze: Enumerate APIC_ACCESS vmexits as MMIO, so they show up in --with-mmio-enumeration



Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

diff -r 9b3c5bb22b50 -r 61d71976769e xenalyze.c
--- a/xenalyze.c        Mon Nov 22 11:41:15 2010 +0000
+++ b/xenalyze.c        Mon Nov 22 12:15:00 2010 +0000
@@ -4520,6 +4520,21 @@
     }
 }
 
+/* Also called by shadow_mmio_postprocess */
+void enumerate_mmio(struct hvm_data *h)
+{
+    struct pf_xen_extra *e = &h->inflight.pf_xen;
+
+    if ( e->mmio_data_valid )
+        update_io_address(&h->summary.mmio, e->gpa, e->mmio_is_write, 
h->arc_cycles, e->va);
+}
+
+void hvm_apic_access_postprocess(struct hvm_data *h)
+{
+    if ( opt.with_mmio_enumeration )
+        enumerate_mmio(h);
+}
+
 void hvm_npf_process(struct record_info *ri, struct hvm_data *h)
 {
     struct {
@@ -5016,12 +5031,21 @@
     h->wrmap_bf = 0;
     h->short_summary_done = 0;
 
-    if(!opt.svm_mode && h->exit_reason == EXIT_REASON_EXCEPTION_NMI)
-    {
-        bzero(&h->inflight.pf_xen, sizeof(h->inflight.pf_xen));
-        h->post_process = hvm_exception_nmi_generic_postprocess;
-    } else {
-        h->post_process = NULL;
+    h->post_process = NULL;
+    if(!opt.svm_mode)
+    {
+        switch(h->exit_reason)
+        {
+        case EXIT_REASON_EXCEPTION_NMI:
+            bzero(&h->inflight.pf_xen, sizeof(h->inflight.pf_xen));
+            h->post_process = hvm_exception_nmi_generic_postprocess;
+            break;
+        case EXIT_REASON_APIC_ACCESS:
+            bzero(&h->inflight.pf_xen, sizeof(h->inflight.pf_xen));
+            h->post_process = hvm_apic_access_postprocess;
+        default:
+            ;
+        }
     }
   
     {
@@ -5826,7 +5850,7 @@
     }
 
     if(opt.with_mmio_enumeration)
-        update_io_address(&h->summary.mmio, e->gpa, e->mmio_is_write, 
h->arc_cycles, e->va);
+        enumerate_mmio(h);
 
     if ( opt.dump_cooked )
     {

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


 


Rackspace

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