Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Using PEBS facility

Jithin_Parayil_T_
1,875 Views

Hi,

I've been going through the documentation for the PEBS facility as described in the Intel software-developer manual vol 3b section 18.7.1.1

It is mentioned that, in order to use PEBS, software needs to initialize the DS_BUFFER_MANAGEMENT_AREA data structure in memory (in non-paged pool) and then store the beginning linear address of this data structure in the IA32_DS_AREA register. 

Is there a sample piece of code that illustrates how this data structure initialization and setting of IA32_DS_AREA register needs to be done?

I'm a bit confused about using PEBS and haven't been able to find any useful examples of how PEBS is utilized either.

It would be quite helpful if I could refer to a piece of sample code that configures and utilizes PEBS? 

I'm working on an IvyBridge machine.

Thanks in advance,

Jithin

0 Kudos
3 Replies
Thomas_W_Intel
Employee
1,875 Views

Jithin,

did you have a look at the pmu-tools that Andi has put on github? It contains the code to access raw PEBS information.

Best regards

Thomas

0 Kudos
Jithin_Parayil_T_
1,875 Views

Thanks a lot Thomas!

I went through the pebs-grabber module in the pmu-tools repo and it cleared a lot of doubts.

However, I ran into an issue while trying to use the module. 

Following are the commands I used to build the code and use it (I followed these commands from the comments mentioned in pebs-grabber.c):

1. make [KDIR=/lib/modules/3.13.0-46-generic/build]

2. insmod pebs-grabber.ko

3. perf record -e cycles:p,pebs_v1,pebs\_v2 ../../a.out 

The third command hits an error:

invalid or unsupported event: 'cycles:p,pebs_v1,pebs_v2'

Run 'perf list' for a list of valid events

Have I missed something?

Thanks,

Jithin

0 Kudos
Mike_U_
Beginner
1,875 Views

 

I am also trying to use this toolset.

I can get the simple-pebs driver compiled and installed.

when I try to follow the above instructions to get the pebs-grabber module installed, it fails.

dmesg says:

pebs-grabber: PEBS version 2

pebs-grabber: Cannot register kprobe: -2

this is with kernel linux-4.2.0-19

 

0 Kudos
Reply