[tip:perf/stat] perf stat: Print stalled cycles percentage

From: tip-bot for Ingo Molnar
Date: Wed Apr 27 2011 - 11:59:48 EST


Commit-ID: 11ba2b85f506306c8dfc9fe144aa4ddc43242855
Gitweb: http://git.kernel.org/tip/11ba2b85f506306c8dfc9fe144aa4ddc43242855
Author: Ingo Molnar <mingo@xxxxxxx>
AuthorDate: Sun, 24 Apr 2011 15:05:10 +0200
Committer: Ingo Molnar <mingo@xxxxxxx>
CommitDate: Tue, 26 Apr 2011 20:04:54 +0200

perf stat: Print stalled cycles percentage

Print:

611,527 cycles
400,553 instructions # ( 0.71 instructions per cycle )
77,809 stalled-cycles # ( 12.71% of all cycles )

0.000610987 seconds time elapsed

Acked-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Acked-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
Link: http://lkml.kernel.org/n/tip-fd6x8r1cpyb6zhlrc4ix8m45@xxxxxxxxxxxxxx
---
tools/perf/builtin-stat.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 03f0e45..3a29041 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -442,7 +442,7 @@ static void abs_printout(int cpu, struct perf_evsel *evsel, double avg)
if (total)
ratio = avg / total;

- fprintf(stderr, " # %10.3f IPC ", ratio);
+ fprintf(stderr, " # ( %4.2f instructions per cycle )", ratio);
} else if (perf_evsel__match(evsel, HARDWARE, HW_BRANCH_MISSES) &&
runtime_branches_stats[cpu].n != 0) {
total = avg_stats(&runtime_branches_stats[cpu]);
@@ -450,7 +450,7 @@ static void abs_printout(int cpu, struct perf_evsel *evsel, double avg)
if (total)
ratio = avg * 100 / total;

- fprintf(stderr, " # %10.3f %% ", ratio);
+ fprintf(stderr, " # %10.3f %%", ratio);

} else if (runtime_nsecs_stats[cpu].n != 0) {
total = avg_stats(&runtime_nsecs_stats[cpu]);
@@ -459,6 +459,13 @@ static void abs_printout(int cpu, struct perf_evsel *evsel, double avg)
ratio = 1000.0 * avg / total;

fprintf(stderr, " # %10.3f M/sec", ratio);
+ } else if (perf_evsel__match(evsel, HARDWARE, HW_STALLED_CYCLES)) {
+ total = avg_stats(&runtime_cycles_stats[cpu]);
+
+ if (total)
+ ratio = avg / total * 100.0;
+
+ fprintf(stderr, " # (%5.2f%% of all cycles )", ratio);
}
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/