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

[Xen-changelog] [xen-unstable] xentrace: Disable tracing, then read records one more time.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1265189797 0
# Node ID 0e453e4d932ddd4aa687be5d85e3a00c29cac600
# Parent  2a07df55c08af39477862e6e45868cae7c4c06cc
xentrace: Disable tracing, then read records one more time.

When interrupted, first disable tracing, then read through the records
one last time.

Without this patch, it's possible to get traces which interact (such
as runstate changes) on processors with higher numbers, while missing
the corresponding traces generated on lower-numbered processors.

Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
---
 tools/xentrace/xentrace.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff -r 2a07df55c08a -r 0e453e4d932d tools/xentrace/xentrace.c
--- a/tools/xentrace/xentrace.c Wed Feb 03 09:35:56 2010 +0000
+++ b/tools/xentrace/xentrace.c Wed Feb 03 09:36:37 2010 +0000
@@ -634,6 +634,8 @@ static int monitor_tbufs(void)
 
     unsigned long data_size;
 
+    int last_read = 1;
+
     /* prepare to listen for VIRQ_TBUF */
     event_init();
 
@@ -712,13 +714,21 @@ static int monitor_tbufs(void)
         }
 
         if ( interrupted )
-            break;
+        {
+            if ( last_read )
+            {
+                /* Disable tracing, then read through all the buffers one last 
time */
+                if ( opts.disable_tracing )
+                    disable_tbufs();
+                last_read = 0;
+                continue;
+            }
+            else
+                break;
+        }
 
         wait_for_event_or_timeout(opts.poll_sleep);
     }
-
-    if ( opts.disable_tracing )
-        disable_tbufs();
 
     if ( opts.memory_buffer )
         membuf_dump();

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