mirror of
https://github.com/xen-project/xen.git
synced 2026-10-30 03:00:05 +01:00
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@eu.citrix.com>
This commit is contained in:
1 parent
7a223440b7
commit
e0b0cd61d2
1 file changed
+14
-4
@@ -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,14 +714,22 @@ 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();
|
||||
|
||||
|
||||