Re: Add top down metrics to perf stat

From: Jiri Olsa
Date: Mon May 16 2016 - 08:58:45 EST


On Fri, May 13, 2016 at 06:44:49PM -0700, Andi Kleen wrote:

SNIP

>
> The formulas to compute the metrics are generic, they
> only change based on the availability on the abstracted
> input values.
>
> The kernel declares the events supported by the current
> CPU and perf stat then computes the formulas based on the
> available metrics.
>
>
> Example output:
>
> $ perf stat --topdown -I 1000 cmd
> 1.000735655 frontend bound retiring bad speculation backend bound
> 1.000735655 S0-C0 2 47.84% 11.69% 8.37% 32.10%
> 1.000735655 S0-C1 2 45.53% 11.39% 8.52% 34.56%

you've lost first 3 header lines (time/core/cpus):

[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --per-core -e cycles -I 1000 -a
# time core cpus counts unit events
1.000310344 S0-C0 2 3,764,470,414 cycles
1.000310344 S0-C1 2 3,764,445,293 cycles
1.000310344 S0-C2 2 3,764,428,422 cycles

also I'm still getting -0% as I mentioned in my previous comment:

[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --topdown -I 1000 -a
nmi_watchdog enabled with topdown. May give wrong results.
Disable with echo 0 > /proc/sys/kernel/nmi_watchdog
1.001615409 retiring bad speculation frontend bound backend bound
1.001615409 S0-C0 2 38.3% 0.0% 58.4% 3.3%
1.001615409 S0-C1 2 38.1% -0.0% 59.3% 2.6%
1.001615409 S0-C2 2 38.1% 0.0% 58.9% 2.9%
1.001615409 S0-C3 2 38.1% -0.0% 58.9% 3.0%
1.001615409 S0-C4 2 38.0% 0.0% 59.0% 2.9%
1.001615409 S0-C5 2 38.1% -0.0% 58.6% 3.3%
1.001615409 S1-C0 2 49.7% 1.9% 44.7% 3.7%

thanks,
jirka