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

From: Andi Kleen
Date: Wed Mar 02 2016 - 10:38:32 EST


On Wed, Mar 02, 2016 at 12:28:42PM +0100, Jiri Olsa wrote:
> On Tue, Mar 01, 2016 at 01:32:39PM +0100, Jiri Olsa wrote:
> > On Mon, Feb 29, 2016 at 02:36:24PM -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 align values with the headers
>
> you addressed this in new version

It's not changed. The values are aligned, but not left aligned.

Left aligned numbers would be confusing if you have multiple
orders of magnitudes.

And it uses 7 wide fields always like the rest of perf stat

>
> >
> > also I have same issue with the stalled cycles
> > being printed as empty in here:
> >
> > [jolsa@krava perf]$ sudo ./perf stat -a -I 1000 --metric-only
> > 1.000583845 insn per cycle stalled cycles per insn branch-misses of all branches
> > 1.000583845 0.45 4.55%
> > 2.001055181 0.86 4.06%
> > 3.001262956 0.63 3.59%
>
> but not this one..

I think that is fixed by one of the later patches. At least it works
for me.

% perf stat -a -I 1000 --metric-only
1.003282611 insn per cycle branch-misses of all branches
1.003282611 0.10 22.74%
2.005159802 0.10 23.13%

-Andi


>
> jirka
>

--
ak@xxxxxxxxxxxxxxx -- Speaking for myself only.