perf stat: Fix zero total printouts
[deliverable/linux.git] / tools / perf / builtin-stat.c
index 16af2d82e85810f4e8d3dec2ff15016ab8d31b30..e5f6ece65a1386f51b21f8b537a43fc9833275ea 100644 (file)
@@ -338,14 +338,24 @@ static void nsec_printout(int counter, double avg)
 
 static void abs_printout(int counter, double avg)
 {
+       double total, ratio = 0.0;
+
        fprintf(stderr, " %14.0f  %-24s", avg, event_name(counter));
 
        if (MATCH_EVENT(HARDWARE, HW_INSTRUCTIONS, counter)) {
-               fprintf(stderr, " # %10.3f IPC  ",
-                               avg / avg_stats(&runtime_cycles_stats));
+               total = avg_stats(&runtime_cycles_stats);
+
+               if (total)
+                       ratio = avg / total;
+
+               fprintf(stderr, " # %10.3f IPC  ", ratio);
        } else {
-               fprintf(stderr, " # %10.3f M/sec",
-                               1000.0 * avg / avg_stats(&runtime_nsecs_stats));
+               total = avg_stats(&runtime_nsecs_stats);
+
+               if (total)
+                       ratio = 1000.0 * avg / total;
+
+               fprintf(stderr, " # %10.3f M/sec", ratio);
        }
 }
 
This page took 0.02723 seconds and 5 git commands to generate.