Re: [PATCH 4/8] perf, tools, stat: Implement CSV metrics output

From: Jiri Olsa
Date: Tue Feb 02 2016 - 04:50:37 EST


On Sat, Jan 30, 2016 at 09:06:52AM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> Now support CSV output for metrics. With the new output callbacks
> this is relatively straight forward by creating new callbacks.
>
> The new line callback needs to know the number of fields to skip them
> correctly
>
> Example output before:
>
> % perf stat -x, true
> 0.200687,,task-clock,200687,100.00
> 0,,context-switches,200687,100.00
> 0,,cpu-migrations,200687,100.00
> 40,,page-faults,200687,100.00
> 730871,,cycles,203601,100.00
> 551056,,stalled-cycles-frontend,203601,100.00
> <not supported>,,stalled-cycles-backend,0,100.00
> 385523,,instructions,203601,100.00
> 78028,,branches,203601,100.00
> 3946,,branch-misses,203601,100.00
>
> After:
>
> % perf stat -x, true
> 0.341119,,task-clock,0.461,CPUs utilized,0.00%,324342,100.00
> 0,,context-switches,0.000,K/sec,0.00%,324342,100.00
> 0,,cpu-migrations,0.000,K/sec,0.00%,324342,100.00
> 41,,page-faults,0.126,M/sec,0.00%,324342,100.00
> 674068,,cycles,2.078,GHz,0.00%,330887,100.00
> 508189,,stalled-cycles-frontend,82.31,frontend cycles idle,0.00%,330887,100.00
> <not supported>,,stalled-cycles-backend,,,0.00%,0,100.00
> 374932,,instructions,0.61,insn per cycle
> ,,,1.20,stalled cycles per insn,0.00%,330887,100.00
> 76540,,branches,235.985,M/sec,0.00%,330887,100.00
> 3091,,branch-misses,4.09,of all branches,0.00%,330887,100.00

$ ./perf stat -x, true
0.279104,,task-clock,0.461,CPUs utilized,279104,100.00
0,,context-switches,0.000,K/sec,279104,100.00
0,,cpu-migrations,0.000,K/sec,279104,100.00
42,,page-faults,0.150,M/sec,279104,100.00
658540,,cycles,2.359,GHz,281617,100.00
<not supported>,,stalled-cycles-frontend,,,,,0,100.00
<not supported>,,stalled-cycles-backend,,,,,0,100.00
428955,,instructions,0.65,insn per cycle

,,,,,,,281617,100.00
^^^^^^^^^^^^^^^^^^^^ it does not look like this one is correct

84032,,branches,301.078,M/sec,281617,100.00
3628,,branch-misses,4.32,of all branches,281617,100.00

>
> Two new fields are added: metric value and metric name before
> the running/enabled fields.

I see, I thought it was meant to be the other way around,
so I need to ask now, wouldn't this break existing parsers?

thanks,
jirka