aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-stat.c
diff options
context:
space:
mode:
authorJaswinder Singh Rajput <jaswinder@kernel.org>2009-06-26 17:32:07 -0400
committerIngo Molnar <mingo@elte.hu>2009-06-27 12:39:41 -0400
commit6e750a8fc009fd0ae98704525d1d8e80d60e8cc9 (patch)
treee2732b3ea1a14ab2a5b641eeb8741fd44e0ef064 /tools/perf/builtin-stat.c
parent566747e6298289c5cb02d4939cb3abf1c4fe7e5a (diff)
perf stat: Improve output
Increase size for event name to handle bigger names like 'L1-d$-prefetch-misses' Changed scaled counters from percentage to a multiplicative factor because the latter is more expressive. Also aligned the scaling factor, otherwise sometimes it looks like: 384 iTLB-load-misses (4.74x scaled) 452029 branch-loads (8.00x scaled) 5892 branch-load-misses (20.39x scaled) 972315 iTLB-loads (3.24x scaled) Before: 150708 L1-d$-stores (scaled from 23.57%) 428804 L1-d$-prefetches (scaled from 23.47%) 314446 L1-d$-prefetch-misses (scaled from 23.42%) 252626137 L1-i$-loads (scaled from 23.24%) 5297550 dTLB-load-misses (scaled from 23.96%) 106992392 branch-loads (scaled from 23.67%) 5239561 branch-load-misses (scaled from 23.43%) After: 1731713 L1-d$-loads ( 14.25x scaled) 44241 L1-d$-prefetches ( 3.88x scaled) 21076 L1-d$-prefetch-misses ( 3.40x scaled) 5789421 L1-i$-loads ( 3.78x scaled) 29645 dTLB-load-misses ( 2.95x scaled) 461474 branch-loads ( 6.52x scaled) 7493 branch-load-misses ( 26.57x scaled) Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> LKML-Reference: <1246051927.2988.10.camel@hpdv5.satnam> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/builtin-stat.c')
-rw-r--r--tools/perf/builtin-stat.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 52c176cc683..3840a70f05b 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -32,6 +32,7 @@
32 * Wu Fengguang <fengguang.wu@intel.com> 32 * Wu Fengguang <fengguang.wu@intel.com>
33 * Mike Galbraith <efault@gmx.de> 33 * Mike Galbraith <efault@gmx.de>
34 * Paul Mackerras <paulus@samba.org> 34 * Paul Mackerras <paulus@samba.org>
35 * Jaswinder Singh Rajput <jaswinder@kernel.org>
35 * 36 *
36 * Released under the GPL v2. (and only v2, not any later version) 37 * Released under the GPL v2. (and only v2, not any later version)
37 */ 38 */
@@ -251,7 +252,7 @@ static void nsec_printout(int counter, u64 *count, u64 *noise)
251{ 252{
252 double msecs = (double)count[0] / 1000000; 253 double msecs = (double)count[0] / 1000000;
253 254
254 fprintf(stderr, " %14.6f %-20s", msecs, event_name(counter)); 255 fprintf(stderr, " %14.6f %-24s", msecs, event_name(counter));
255 256
256 if (attrs[counter].type == PERF_TYPE_SOFTWARE && 257 if (attrs[counter].type == PERF_TYPE_SOFTWARE &&
257 attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK) { 258 attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK) {
@@ -265,7 +266,7 @@ static void nsec_printout(int counter, u64 *count, u64 *noise)
265 266
266static void abs_printout(int counter, u64 *count, u64 *noise) 267static void abs_printout(int counter, u64 *count, u64 *noise)
267{ 268{
268 fprintf(stderr, " %14Ld %-20s", count[0], event_name(counter)); 269 fprintf(stderr, " %14Ld %-24s", count[0], event_name(counter));
269 270
270 if (runtime_cycles_avg && 271 if (runtime_cycles_avg &&
271 attrs[counter].type == PERF_TYPE_HARDWARE && 272 attrs[counter].type == PERF_TYPE_HARDWARE &&
@@ -295,7 +296,7 @@ static void print_counter(int counter)
295 scaled = event_scaled_avg[counter]; 296 scaled = event_scaled_avg[counter];
296 297
297 if (scaled == -1) { 298 if (scaled == -1) {
298 fprintf(stderr, " %14s %-20s\n", 299 fprintf(stderr, " %14s %-24s\n",
299 "<not counted>", event_name(counter)); 300 "<not counted>", event_name(counter));
300 return; 301 return;
301 } 302 }
@@ -306,8 +307,7 @@ static void print_counter(int counter)
306 abs_printout(counter, count, noise); 307 abs_printout(counter, count, noise);
307 308
308 if (scaled) 309 if (scaled)
309 fprintf(stderr, " (scaled from %.2f%%)", 310 fprintf(stderr, " (%7.2fx scaled)", (double)count[1]/count[2]);
310 (double) count[2] / count[1] * 100);
311 311
312 fprintf(stderr, "\n"); 312 fprintf(stderr, "\n");
313} 313}
@@ -421,7 +421,6 @@ static void print_stat(int argc, const char **argv)
421 for (counter = 0; counter < nr_counters; counter++) 421 for (counter = 0; counter < nr_counters; counter++)
422 print_counter(counter); 422 print_counter(counter);
423 423
424
425 fprintf(stderr, "\n"); 424 fprintf(stderr, "\n");
426 fprintf(stderr, " %14.9f seconds time elapsed", 425 fprintf(stderr, " %14.9f seconds time elapsed",
427 (double)walltime_nsecs_avg/1e9); 426 (double)walltime_nsecs_avg/1e9);