Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

Accessing Uncore performance counters

Priyadarshi
Beginner
2,461 Views

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

0 Kudos
8 Replies
lin_w_
Beginner
2,461 Views
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
0 Kudos
Priyadarshi
Beginner
2,461 Views
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.
0 Kudos
McCalpinJohn
Honored Contributor III
2,461 Views
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.
0 Kudos
lin_w_
Beginner
2,461 Views
Hi, Priyadarshi, can you get event UNC_DRAM_PAGE_CLOSE.CH0 or UNC_DRAM_PAGE_MISS.CH0 by libpfm4 ?
0 Kudos
Patrick_F_Intel1
Employee
2,461 Views
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
0 Kudos
Bernard
Valued Contributor I
2,461 Views
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.
0 Kudos
Padma_b_
Beginner
2,461 Views

Are there any PMCs to test hardware synchronization across cores?

 

0 Kudos
dhumal__akshay
Beginner
2,461 Views

iliyapolak wrote:

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.

 

Hello, I am also working on Xeon E5 2600 product. I am unable to fetch data related to IMC or QPI. Can you assist me on how this data can be computed using kernel mode driver ?

Thanks and regards

Akshay

0 Kudos
Reply