perf stat: Add computation of TopDown formulas
authorAndi Kleen <ak@linux.intel.com>
Tue, 24 May 2016 19:52:37 +0000 (12:52 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 6 Jun 2016 20:04:16 +0000 (17:04 -0300)
commit239bd47f8355eb5defc865cf408824b6cfeca5dc
tree6786c6f67d36700c3757574b864c0549a36c5670
parent44b1e60ab576c343aa592a2a6c679297cc69740d
perf stat: Add computation of TopDown formulas

Implement the TopDown formulas in 'perf stat'. The topdown basic metrics
reported by the kernel are collected, and the formulas are computed and
output as normal metrics.

See the kernel commit exporting the events for details on the used
metrics.

Committer note:

Output example:

  # perf stat --topdown -a usleep 1

   Performance counter stats for 'system wide':

             retiring     bad speculation   frontend bound   backend bound
  S0-C0    2     23.8%       11.6%            28.3%           36.3%
  S0-C1    2     16.2%       15.7%            36.5%           31.6%

         0.000579956 seconds time elapsed
  #

v2: Always print all metrics, only use thresholds for coloring.
v3: Mark retiring over threshold green, not red.
v4: Only print one decimal digit
    Fix color printing of one metric
v5: Avoid printing -0.0
v6: Remove extra frontend event lookup

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1464119559-17203-2-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/stat-shadow.c
tools/perf/util/stat.c
tools/perf/util/stat.h