diff options
| author | Linus Torvalds <[email protected]> | 2009-09-26 17:15:33 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2009-09-26 17:15:33 +0000 |
| commit | 49e70dda359660f20fa21d03bfae132e15c78195 (patch) | |
| tree | a21498cdd419bbfd08729fed7d161a4d68c865c9 /tools/perf/builtin-stat.c | |
| parent | Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/k... (diff) | |
| parent | perf tools: Dont use openat() (diff) | |
| download | kernel-49e70dda359660f20fa21d03bfae132e15c78195.tar.gz kernel-49e70dda359660f20fa21d03bfae132e15c78195.zip | |
Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
perf tools: Dont use openat()
perf tools: Fix buffer allocation
perf tools: .gitignore += perf*.html
perf tools: Handle relative paths while loading module symbols
perf tools: Fix module symbol loading bug
perf_event, x86: Fix 'perf sched record' crashing the machine
perf_event: Update PERF_EVENT_FORK header definition
perf stat: Fix zero total printouts
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) 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); } } |
