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

[Xen-devel] [PATCH] xenalyze: Make eip_list output more useful



# HG changeset patch
# User George Dunlap <george.dunlap@xxxxxxxxxxxxx>
# Date 1352307402 0
# Node ID 71eeac989efca6a590051edc3dd132df1bd55f7b
# Parent  2080678babbfd5234536af913a768a7f18cca690
xenalyze: Make eip_list output more useful

1. Count the total number of samples
2. If the samples don't have associated cycle data, print the percentage
of samples of the total
3. Use 12 characters, so 64-bit addresses are aligned properly.

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

diff --git a/xenalyze.c b/xenalyze.c
--- a/xenalyze.c
+++ b/xenalyze.c
@@ -2962,6 +2962,7 @@ void update_eip(struct eip_list_struct *
 void dump_eip(struct eip_list_struct *head) {
     struct eip_list_struct *p;
     int i;
+    int total = 0;
 
     struct eip_list_struct **qsort_array;
     int N=0;
@@ -2984,7 +2985,10 @@ void dump_eip(struct eip_list_struct *he
     }
 
     for(p=head; p; p=p->next)
+    {
+        total += p->summary.count;
         N++;
+    }
 
     if(!N)
         return;
@@ -3003,11 +3007,25 @@ void dump_eip(struct eip_list_struct *he
         N=opt.summary_eip_limit;
 #endif
 
+    printf("   Total samples: %d\n", total);
+    
     for(i=0; i<N; i++) {
         p = qsort_array[i];
-        PRINT_SUMMARY(p->summary, "   %8llx%-45s: ",
-                      p->eip,
-                      find_symbol(p->eip));
+        if ( p->summary.cycles )
+            PRINT_SUMMARY(p->summary, "   %12llx%-45s: ",
+                          p->eip,
+                          find_symbol(p->eip));
+        else
+        {
+            printf("   %12llx%-45s: ",
+                          p->eip,
+                          find_symbol(p->eip));
+            printf(" %7d %5.2lf%%\n",
+                   p->summary.count,
+                   ((double)p->summary.count*100)/total);
+        }
+
+            
         if(eip_list_type[p->type].dump) {
             eip_list_type[p->type].dump(p);
         }

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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