diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-09-22 08:53:51 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-09-22 09:01:47 -0400 |
commit | c7f7fea30b7e52c9d4b9cef271110a98d59adcbc (patch) | |
tree | aa57c1290455298d178ed6880cd8157a3e738abd /tools/perf/builtin-stat.c | |
parent | a8f90e906783f1f815120eefe813b23cb396e9bd (diff) |
perf stat: Fix zero total printouts
Before:
0 sched:sched_switch # nan M/sec
After:
0 sched:sched_switch # 0.000 M/sec
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/builtin-stat.c')
-rw-r--r-- | tools/perf/builtin-stat.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 16af2d82e858..e5f6ece65a13 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c | |||
@@ -338,14 +338,24 @@ static void nsec_printout(int counter, double avg) | |||
338 | 338 | ||
339 | static void abs_printout(int counter, double avg) | 339 | static void abs_printout(int counter, double avg) |
340 | { | 340 | { |
341 | double total, ratio = 0.0; | ||
342 | |||
341 | fprintf(stderr, " %14.0f %-24s", avg, event_name(counter)); | 343 | fprintf(stderr, " %14.0f %-24s", avg, event_name(counter)); |
342 | 344 | ||
343 | if (MATCH_EVENT(HARDWARE, HW_INSTRUCTIONS, counter)) { | 345 | if (MATCH_EVENT(HARDWARE, HW_INSTRUCTIONS, counter)) { |
344 | fprintf(stderr, " # %10.3f IPC ", | 346 | total = avg_stats(&runtime_cycles_stats); |
345 | avg / avg_stats(&runtime_cycles_stats)); | 347 | |
348 | if (total) | ||
349 | ratio = avg / total; | ||
350 | |||
351 | fprintf(stderr, " # %10.3f IPC ", ratio); | ||
346 | } else { | 352 | } else { |
347 | fprintf(stderr, " # %10.3f M/sec", | 353 | total = avg_stats(&runtime_nsecs_stats); |
348 | 1000.0 * avg / avg_stats(&runtime_nsecs_stats)); | 354 | |
355 | if (total) | ||
356 | ratio = 1000.0 * avg / total; | ||
357 | |||
358 | fprintf(stderr, " # %10.3f M/sec", ratio); | ||
349 | } | 359 | } |
350 | } | 360 | } |
351 | 361 | ||