Commit 6e750a8f authored by Jaswinder Singh Rajput's avatar Jaswinder Singh Rajput Committed by Ingo Molnar

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: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarJaswinder Singh Rajput <jaswinderrajput@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <1246051927.2988.10.camel@hpdv5.satnam>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 566747e6
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
* Wu Fengguang <fengguang.wu@intel.com> * Wu Fengguang <fengguang.wu@intel.com>
* Mike Galbraith <efault@gmx.de> * Mike Galbraith <efault@gmx.de>
* Paul Mackerras <paulus@samba.org> * Paul Mackerras <paulus@samba.org>
* Jaswinder Singh Rajput <jaswinder@kernel.org>
* *
* Released under the GPL v2. (and only v2, not any later version) * Released under the GPL v2. (and only v2, not any later version)
*/ */
...@@ -251,7 +252,7 @@ static void nsec_printout(int counter, u64 *count, u64 *noise) ...@@ -251,7 +252,7 @@ static void nsec_printout(int counter, u64 *count, u64 *noise)
{ {
double msecs = (double)count[0] / 1000000; double msecs = (double)count[0] / 1000000;
fprintf(stderr, " %14.6f %-20s", msecs, event_name(counter)); fprintf(stderr, " %14.6f %-24s", msecs, event_name(counter));
if (attrs[counter].type == PERF_TYPE_SOFTWARE && if (attrs[counter].type == PERF_TYPE_SOFTWARE &&
attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK) { attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK) {
...@@ -265,7 +266,7 @@ static void nsec_printout(int counter, u64 *count, u64 *noise) ...@@ -265,7 +266,7 @@ static void nsec_printout(int counter, u64 *count, u64 *noise)
static void abs_printout(int counter, u64 *count, u64 *noise) static void abs_printout(int counter, u64 *count, u64 *noise)
{ {
fprintf(stderr, " %14Ld %-20s", count[0], event_name(counter)); fprintf(stderr, " %14Ld %-24s", count[0], event_name(counter));
if (runtime_cycles_avg && if (runtime_cycles_avg &&
attrs[counter].type == PERF_TYPE_HARDWARE && attrs[counter].type == PERF_TYPE_HARDWARE &&
...@@ -295,7 +296,7 @@ static void print_counter(int counter) ...@@ -295,7 +296,7 @@ static void print_counter(int counter)
scaled = event_scaled_avg[counter]; scaled = event_scaled_avg[counter];
if (scaled == -1) { if (scaled == -1) {
fprintf(stderr, " %14s %-20s\n", fprintf(stderr, " %14s %-24s\n",
"<not counted>", event_name(counter)); "<not counted>", event_name(counter));
return; return;
} }
...@@ -306,8 +307,7 @@ static void print_counter(int counter) ...@@ -306,8 +307,7 @@ static void print_counter(int counter)
abs_printout(counter, count, noise); abs_printout(counter, count, noise);
if (scaled) if (scaled)
fprintf(stderr, " (scaled from %.2f%%)", fprintf(stderr, " (%7.2fx scaled)", (double)count[1]/count[2]);
(double) count[2] / count[1] * 100);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
...@@ -421,7 +421,6 @@ static void print_stat(int argc, const char **argv) ...@@ -421,7 +421,6 @@ static void print_stat(int argc, const char **argv)
for (counter = 0; counter < nr_counters; counter++) for (counter = 0; counter < nr_counters; counter++)
print_counter(counter); print_counter(counter);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
fprintf(stderr, " %14.9f seconds time elapsed", fprintf(stderr, " %14.9f seconds time elapsed",
(double)walltime_nsecs_avg/1e9); (double)walltime_nsecs_avg/1e9);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment