aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-trace.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2010-05-27 09:46:25 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2010-06-24 17:36:05 -0400
commit6fcf7ddbb73d677b3bb7b16f0fff1419cb8349e9 (patch)
tree03d0135d2857251361bc3c1bdd728146ce9f6e94 /tools/perf/builtin-trace.c
parentaa59a48596d8358a908bfb458300b5625cd47785 (diff)
perf: Don't print traces when debugging ordering
Errors due to ordering bugs are easily lost in the middle of traces. When we are in this mode, don't print the traces so that we don't miss the debugging messages. But display a comforting message if we didn't encounter any ordering problem. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'tools/perf/builtin-trace.c')
-rw-r--r--tools/perf/builtin-trace.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index dddf3f01b5ab..83df8db4f358 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -13,6 +13,7 @@ static char const *script_name;
13static char const *generate_script_lang; 13static char const *generate_script_lang;
14static bool debug_ordering; 14static bool debug_ordering;
15static u64 last_timestamp; 15static u64 last_timestamp;
16static u64 nr_unordered;
16 17
17static int default_start_script(const char *script __unused, 18static int default_start_script(const char *script __unused,
18 int argc __unused, 19 int argc __unused,
@@ -96,8 +97,10 @@ static int process_sample_event(event_t *event, struct perf_session *session)
96 pr_err("Samples misordered, previous: %llu " 97 pr_err("Samples misordered, previous: %llu "
97 "this: %llu\n", last_timestamp, 98 "this: %llu\n", last_timestamp,
98 data.time); 99 data.time);
100 nr_unordered++;
99 } 101 }
100 last_timestamp = data.time; 102 last_timestamp = data.time;
103 return 0;
101 } 104 }
102 /* 105 /*
103 * FIXME: better resolve from pid from the struct trace_entry 106 * FIXME: better resolve from pid from the struct trace_entry
@@ -132,9 +135,16 @@ static void sig_handler(int sig __unused)
132 135
133static int __cmd_trace(struct perf_session *session) 136static int __cmd_trace(struct perf_session *session)
134{ 137{
138 int ret;
139
135 signal(SIGINT, sig_handler); 140 signal(SIGINT, sig_handler);
136 141
137 return perf_session__process_events(session, &event_ops); 142 ret = perf_session__process_events(session, &event_ops);
143
144 if (debug_ordering)
145 pr_err("Misordered timestamps: %llu\n", nr_unordered);
146
147 return ret;
138} 148}
139 149
140struct script_spec { 150struct script_spec {