Skip to contentSkip to conversation

perf with gnuplot

DISCUSSION Thorsten Schuett 2 participants 4 messages Jan 23, 2013 – Jan 24, 2013

lore
Share & tools
lore
#0 lore raw

Hi,

I record three different events for my test-program:
perf record -s -e cycles,instructions,LLC-load-misses ./test-program

I want to plot the occurences of the different events over time, i.e. x-axis is time and y-axis is event count.

With
perf report -D
I can dump perf.data to ASCII. However, I could not figure out how to extract different event types from the ASCII output.

0x1edb88 [0x30]: event: 9
.
. ... raw event: size 48 bytes

.  0000:  09 00 00 00 02 00 30 00 43 b6 2f e7 52 2b 00 00 ......0.C./.R+..
.  0010:  2b 20 01 00 2f 20 01 00 2e 21 8e 48 b4 a9 26 00  + ../ ...!.H..&.
.  0020:  f6 6d 00 00 00 00 00 00 6b 60 63 00 00 00 00 00 .m......k`c.....

.
10882640891486510 0x1edb88 [0x30]: PERF_RECORD_SAMPLE(IP, 2): 73771/73775: 0x2b52e72fb643 period: 6512747 addr: 0

I figured out how to parse the timestamp, pid and pid and I guess period says how often an event happened in the period. However I do not know which event occured. Is this only encoded in the raw event or am I missing something?

Thorsten

#1 lore raw

Hi Thorsten,

Quoted 23 lines · Thorsten Schuett

Hi,

I record three different events for my test-program:
perf record -s -e cycles,instructions,LLC-load-misses ./test-program

I want to plot the occurences of the different events over time, i.e. x-axis is time and y-axis is event count.

With
perf report -D
I can dump perf.data to ASCII. However, I could not figure out how to extract different event types from the ASCII output.

0x1edb88 [0x30]: event: 9
.
. ... raw event: size 48 bytes

.  0000:  09 00 00 00 02 00 30 00 43 b6 2f e7 52 2b 00 00 ......0.C./.R+..
.  0010:  2b 20 01 00 2f 20 01 00 2e 21 8e 48 b4 a9 26 00  + ../ ...!.H..&.
.  0020:  f6 6d 00 00 00 00 00 00 6b 60 63 00 00 00 00 00 .m......k`c.....

.
10882640891486510 0x1edb88 [0x30]: PERF_RECORD_SAMPLE(IP, 2):
73771/73775: 0x2b52e72fb643 period: 6512747 addr: 0

Quoted 6 lines

I figured out how to parse the timestamp, pid and pid and I guess period says how often an event happened in the period. However I do not know which event occured. Is this only encoded in the raw event or am I missing something?

Thorsten

There's a patch proposed for this. I guess it'll likely get merged soon so that you can use it in v3.9?

http://thread.gmane.org/gmane.linux.kernel/1427078/

Thanks,
Namhyung

#2 lore raw

This sounds great.

Thanks,
Thorsten

Quoted 40 lines · Namhyung Kim

Hi Thorsten,

Quoted 23 lines · Thorsten Schuett

Hi,

I record three different events for my test-program:
perf record -s -e cycles,instructions,LLC-load-misses ./test-program

I want to plot the occurences of the different events over time, i.e. x-axis is time and y-axis is event count.

With
perf report -D
I can dump perf.data to ASCII. However, I could not figure out how to extract different event types from the ASCII output.

0x1edb88 [0x30]: event: 9
.
. ... raw event: size 48 bytes

.  0000:  09 00 00 00 02 00 30 00 43 b6 2f e7 52 2b 00 00 ......0.C./.R+..
.  0010:  2b 20 01 00 2f 20 01 00 2e 21 8e 48 b4 a9 26 00  + ../ ...!.H..&.
.  0020:  f6 6d 00 00 00 00 00 00 6b 60 63 00 00 00 00 00 .m......k`c.....

.
10882640891486510 0x1edb88 [0x30]: PERF_RECORD_SAMPLE(IP, 2):
73771/73775: 0x2b52e72fb643 period: 6512747 addr: 0

Quoted 6 lines

I figured out how to parse the timestamp, pid and pid and I guess period says how often an event happened in the period. However I do not know which event occured. Is this only encoded in the raw event or am I missing something?

Thorsten

There's a patch proposed for this. I guess it'll likely get merged soon so that you can use it in v3.9?

   http://thread.gmane.org/gmane.linux.kernel/1427078/

Thanks,
Namhyung

#3 lore raw
In reply to Namhyung Kim

After thinking about it, I have some questions/suggestions:

I would really like to see this work with record/report as well. In my case, I have to watch programs on a remote machine and do the analysis afterwards on my local machine. The record/report workflow seems to be more flexible here. I guess perf.data is a more compact file than the interval counter printing and I can experiment with different parameters on the report command.

Is this going to work with -s as well?

Thorsten

Quoted 40 lines · Namhyung Kim

Hi Thorsten,

Quoted 23 lines · Thorsten Schuett

Hi,

I record three different events for my test-program:
perf record -s -e cycles,instructions,LLC-load-misses ./test-program

I want to plot the occurences of the different events over time, i.e. x-axis is time and y-axis is event count.

With
perf report -D
I can dump perf.data to ASCII. However, I could not figure out how to extract different event types from the ASCII output.

0x1edb88 [0x30]: event: 9
.
. ... raw event: size 48 bytes

.  0000:  09 00 00 00 02 00 30 00 43 b6 2f e7 52 2b 00 00 ......0.C./.R+..
.  0010:  2b 20 01 00 2f 20 01 00 2e 21 8e 48 b4 a9 26 00  + ../ ...!.H..&.
.  0020:  f6 6d 00 00 00 00 00 00 6b 60 63 00 00 00 00 00 .m......k`c.....

.
10882640891486510 0x1edb88 [0x30]: PERF_RECORD_SAMPLE(IP, 2):
73771/73775: 0x2b52e72fb643 period: 6512747 addr: 0

Quoted 6 lines

I figured out how to parse the timestamp, pid and pid and I guess period says how often an event happened in the period. However I do not know which event occured. Is this only encoded in the raw event or am I missing something?

Thorsten

There's a patch proposed for this. I guess it'll likely get merged soon so that you can use it in v3.9?

   http://thread.gmane.org/gmane.linux.kernel/1427078/

Thanks,
Namhyung