|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 1 of 3] xentrace: Skip to low cpu when throwing away
Skip to the next "low" cpu when throwing away portions of the circular
memory buffer. This makes subsequent analysis easier.
Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
diff -r 859a372efa66 -r 16ef34de0129 tools/xentrace/xentrace.c
--- a/tools/xentrace/xentrace.c Tue Apr 13 13:40:58 2010 +0100
+++ b/tools/xentrace/xentrace.c Tue Apr 13 17:24:07 2010 +0100
@@ -149,6 +149,7 @@
{
struct cpu_change_record *rec;
long need_to_consume, free, freed;
+ int last_cpu = -1;
if ( membuf.pending_size > 0 )
{
@@ -193,11 +194,25 @@
if ( need_to_consume > 0 )
{
+ last_cpu = rec->data.cpu;
MEMBUF_CONS_INCREMENT(freed);
need_to_consume -= freed;
}
} while( need_to_consume > 0 );
+ /* For good tsc consistency, we need to start at a low-cpu buffer. Keep
+ * skipping until the cpu goes down or stays the same. */
+ rec = (struct cpu_change_record *)MEMBUF_POINTER(membuf.cons);
+ while ( rec->data.cpu > last_cpu )
+ {
+ last_cpu = rec->data.cpu;
+
+ freed = sizeof(*rec) + rec->data.window_size;
+
+ MEMBUF_CONS_INCREMENT(freed);
+ rec = (struct cpu_change_record *)MEMBUF_POINTER(membuf.cons);
+ }
+
start_window:
/*
* Start writing "pending" data. Update prod once all this data is
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|