aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-stat.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-09-22 08:53:51 -0400
committerIngo Molnar <mingo@elte.hu>2009-09-22 09:01:47 -0400
commitc7f7fea30b7e52c9d4b9cef271110a98d59adcbc (patch)
treeaa57c1290455298d178ed6880cd8157a3e738abd /tools/perf/builtin-stat.c
parenta8f90e906783f1f815120eefe813b23cb396e9bd (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.c18
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
339static void abs_printout(int counter, double avg) 339static 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