[PATCH 8/9] perf: Add a perf trace option to check samples ordering reliability

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Frederic Weisbecker
Date: Friday, April 23, 2010 - 7:05 pm

To ensure sample events time reordering is reliable, add a -d option
to perf trace to check that automatically.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
---
 tools/perf/builtin-trace.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 1d034f6..77f556f 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -11,6 +11,8 @@
 
 static char const		*script_name;
 static char const		*generate_script_lang;
+static bool			debug_ordering;
+static u64			last_timestamp;
 
 static int default_start_script(const char *script __unused,
 				int argc __unused,
@@ -87,6 +89,14 @@ static int process_sample_event(event_t *event, struct perf_session *session)
 	}
 
 	if (session->sample_type & PERF_SAMPLE_RAW) {
+		if (debug_ordering) {
+			if (data.time < last_timestamp) {
+				pr_err("Samples misordered, previous: %llu "
+					"this: %llu\n", last_timestamp,
+					data.time);
+			}
+			last_timestamp = data.time;
+		}
 		/*
 		 * FIXME: better resolve from pid from the struct trace_entry
 		 * field, although it should be the same than this perf
@@ -532,6 +542,8 @@ static const struct option options[] = {
 		   "generate perf-trace.xx script in specified language"),
 	OPT_STRING('i', "input", &input_name, "file",
 		    "input file name"),
+	OPT_BOOLEAN('d', "debug-ordering", &debug_ordering,
+		   "check that samples time ordering is monotonic"),
 
 	OPT_END()
 };
-- 
1.6.2.3

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[GIT PULL] perf tools updates, Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 1/9] perf lock: Fix state machine to recognize lock ..., Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 2/9] perf: Fix initialization bug in parse_single_t ..., Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 3/9] perf: Generalize perf lock's sample event reor ..., Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 4/9] perf: Use generic sample reordering in perf sched, Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 5/9] perf: Use generic sample reordering in perf kmem, Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 6/9] perf: Use generic sample reordering in perf trace, Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 7/9] perf: Use generic sample reordering in perf ti ..., Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 8/9] perf: Add a perf trace option to check samples ..., Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
[PATCH 9/9] perf: Some perf-kvm documentation edits, Frederic Weisbecker, (Fri Apr 23, 7:05 pm)
Re: [GIT PULL] perf tools updates, Frederic Weisbecker, (Fri Apr 23, 7:27 pm)
Re: [PATCH 8/9] perf: Add a perf trace option to check sam ..., Frederic Weisbecker, (Sun Apr 25, 11:08 am)
Re: [GIT PULL] perf tools updates, Ingo Molnar, (Tue Apr 27, 2:15 am)
[PATCH] perf lock: track only specified threads, Hitoshi Mitake, (Thu May 6, 2:32 am)
Re: [PATCH] perf lock: track only specified threads, Frederic Weisbecker, (Thu May 6, 5:49 pm)
Re: [PATCH] perf lock: track only specified threads, Hitoshi Mitake, (Sat May 8, 1:02 am)
[tip:perf/core] perf lock: Add &quot;info&quot; subcommand for dumpi ..., tip-bot for Hitoshi ..., (Mon May 10, 12:19 am)