Accessing Uncore performance counters

Accessing Uncore performance counters

Bild des Benutzers Priyadarshi

Hello,

I am trying to access performance counters inside the uncore especially the IMC and QPI ones. I have a Core-i7 3770 using Fedora release 17 with kernel version : 3.6.0-rc1-xxxx.

I have used the following tools to query available uncore counters but no luck so far:

1. PAPI 5.0.1.0 : papi_native_avail doesn’t return anything related to uncore.

2. libpfm4 4.3.0 : showevtinfo does return a few supported events for LLC but nothing related to IMC or QPI.

3. perf 3.5.0 : perf list also does not give any interesting events.

I see a perf_event_intel_uncore.h file inside the kernel source (linux/arch/x86/cpu) but there's no documentation or tool which uses that file. Is there any way I can access those performance counters?

Thanks,

Priyadarshi

7 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.
Bild des Benutzers lin w.

I have the same problem with you, and this problem have puzzled me for two month.
1. I have checked PAPI list, I havn't any impression about uncore list
3. You use "perf list --help",you can find perf can get raw event. there is an example. then you can lookup 'Software Developer's Manual' for events you need.
good luck.
lin wang

Bild des Benutzers Priyadarshi

Thanks for the help! I wanted to get events mentioned in the E5 uncore performance guide especially the IMC and QPI ones. But I don't see a hex based event number compared to the Software developers manual.

I was however able to get the uncore events using the latest git version of libpfm4. It lists all the uncore boxes and the events related to it.

Bild des Benutzers John D. McCalpin

I don't think that Intel has documented the IMC or QPI counters on the Core i7-3770 (or any of the Sandy Bridge/Ivy Bridge single-socket parts).
These processors have a different uncore than the 2-socket server parts (Xeon E5-2600 for Sandy Bridge), which are the only ones with extensive uncore performance monitoring documentation ("Intel® Xeon® Processor E5-2600 Product Family Uncore Performance Monitoring Guide", document 327043, revision 001, March 2012).

The Intel Arch SW Developer's Guide Volume 3 does list a few performance monitor events for the uncore of the single-socket Sandy Bridge parts.
In my version (document 325384-042), Table 19-6 lists performance counter events in the uncore for processors with a CPUID signature of Family 6, Extended Model 2, Model 10 (referred to as "DisplayFamily_DisplayModel 06_2Ah"). I have some Xeon E3-1270 processors that match that model. The Linux "/proc/cpuinfo" refers to these as "cpu family 6, model 42".

I just checked and found a newer version of the Intel Arch SW Developer's Guide, Volume 3 -- 325384-044, August 2012.
In this new version the table listing uncore events for processors of type "06_2Ah" has moved to Table 19-9, but it looks like the same info.

I think that the Core i7-3770 is DisplayModel_DisplayFamily 06_3Ah. Even the August 2012 revision of the SW Dev Guide, Vol 3, does not list any uncore performance monitoring events for that product. It *might* support the same events as the earlier Sandy Bridge single-socket server, but this is certainly not guaranteed.

John D. McCalpin, PhD "Dr. Bandwidth"
Bild des Benutzers lin w.

Hi, Priyadarshi, can you get event UNC_DRAM_PAGE_CLOSE.CH0 or UNC_DRAM_PAGE_MISS.CH0 by libpfm4 ?

Bild des Benutzers Patrick Fay (Intel)

Hello Lin W, Priyadarshi, and jdmccalpin,

Please see comment
http://software.intel.com/en-us/comment/1717974#comment-1717974

for events you can use on single socket sandy bridge systems to measure memory traffic.

Whatever tool you are using has to understand how to program the ARB and CBOx unit of the uncore.
Intel VTune can program these events.
I don't know whether perf, papi, libpfm4 support these events.
Pat

Bild des Benutzers iliyapolak

You can access Uncore performance counters programatically with the kernel mode driver.I'm working now on driver which will access Uncore counters by writing to specific MSR registers.For my project I reffer to this specification "Intel® Xeon® Processor E5-2600 Product Family Uncore Performance Monitoring Guide", document 327043, revision 001, March 2012)".
If you are interested I can post the source.

Melden Sie sich an, um einen Kommentar zu hinterlassen.