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

From: Jiri Olsa
Date: Wed Mar 02 2016 - 10:46:31 EST


On Wed, Mar 02, 2016 at 04:38:26PM +0100, Andi Kleen wrote:
> 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

ugh, got confused.. you're right

jirka