Re: [PATCH 2/6] perf, tools, stat: Implement CSV metrics output

From: Arnaldo Carvalho de Melo
Date: Thu Feb 18 2016 - 12:00:46 EST


Em Wed, Feb 17, 2016 at 02:44:01PM -0800, Andi Kleen escreveu:
> 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.
>
> This allows to easily plot metrics from CSV files.
>
> 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
> .502457,,task-clock,502457,100.00,0.485,CPUs utilized
> 0,,context-switches,502457,100.00,0.000,K/sec
> 0,,cpu-migrations,502457,100.00,0.000,K/sec
> 45,,page-faults,502457,100.00,0.090,M/sec
> 644692,,cycles,509102,100.00,1.283,GHz
> 423470,,stalled-cycles-frontend,509102,100.00,65.69,frontend cycles idle
> <not supported>,,stalled-cycles-backend,0,100.00,,,,
> 492701,,instructions,509102,100.00,0.76,insn per cycle
> ,,,,,0.86,stalled cycles per insn
> 97767,,branches,509102,100.00,194.578,M/sec
> 4788,,branch-misses,509102,100.00,4.90,of all branches

Testing here I noticed this new line with just commas:


[root@jouet ~]# perf stat -x, usleep 1
0.268163,,task-clock,268163,100.00,0.484,CPUs utilized
1,,context-switches,268163,100.00,0.004,M/sec
0,,cpu-migrations,268163,100.00,0.000,K/sec
52,,page-faults,268163,100.00,0.194,M/sec
815922,,cycles,270746,100.00,3.043,GHz
<not supported>,,stalled-cycles-frontend,0,100.00,,,,
<not supported>,,stalled-cycles-backend,0,100.00,,,,
680198,,instructions,270746,100.00,0.83,insn per cycle
,,,,,,,,
136401,,branches,270746,100.00,508.650,M/sec
6995,,branch-misses,270746,100.00,5.13,of all branches
[root@jouet ~]#

Where before it wasn't there:

cat /tmp/before
0.282628,,task-clock,282628,100.00
1,,context-switches,282628,100.00
0,,cpu-migrations,282628,100.00
52,,page-faults,282628,100.00
861213,,cycles,285354,100.00
<not supported>,,stalled-cycles-frontend,0,100.00
<not supported>,,stalled-cycles-backend,0,100.00
686082,,instructions,285354,100.00
137846,,branches,285354,100.00
7142,,branch-misses,285354,100.00