Re: [PATCH 5/7] perf, tools, stat: Implement --metric-only mode

From: Jiri Olsa
Date: Thu Mar 10 2016 - 06:28:50 EST


On Thu, Mar 03, 2016 at 03:57:36PM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> Add a new mode to only print metrics. Sometimes we don't care about
> the raw values, just want the computed metrics. This allows more
> compact printing, so with -I each sample is only a single line.
> This also allows easier plotting and processing with other tools.
>
> The main target is with using --topdown, but it also works with
> -T and standard perf stat. A few metrics are not supported.
>
> To avoiding having to hardcode all the metrics in the code it uses
> a two pass approach: first compute dummy metrics and only
> print the headers in the print_metric callback. Then use the callback
> to print the actual values.
>
> There are some additional changes
> in the stat printout code to handle all metrics being on a single line.
>
> One issue is that the column code doesn't know in advance what events
> are not supported by the CPU, and it would be hard to find out
> as this could change based on dynamic conditions. That causes
> empty columns in some cases.
>
> The output can be fairly wide, often you may need more than 80 columns.
>
> Example:
>
> % perf stat -a -I 1000 --metric-only
> 1.001452803 frontend cycles idle insn per cycle stalled cycles per insn branch-misses of all branches
> 1.001452803 158.91% 0.66 2.39 2.92%
> 2.002192321 180.63% 0.76 2.08 2.96%
> 3.003088282 150.59% 0.62 2.57 2.84%
> 4.004369835 196.20% 0.98 1.62 3.79%
> 5.005227314 231.98% 0.84 1.90 4.71%

could you please also make a change to display some kind of warning
if there're no events to produce any metrics?

[jolsa@krava perf]$ sudo ./perf stat -a -I 1000 --metric-only -e cycles
1.000172990
1.000172990
2.000448614

this could be follow up patch

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>


thanks,
jirka