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

Some problems about /sys/devices/uncore files

Duan_Z_
Beginner
984 Views

I had some problems when I was using pmu-tool (https://github.com/andikleen/pmu-tools) on different kernel versions. The pmu-tool dosen't work well and I found the pmu-tool error happens when my /sys/devices/ directory doesn't contain any uncore_* files. 

So how can I install/add these files? Is there away to measure the QPI load without these devices? Or can I use PMU-TOOL well with out this uncore_* files?

0 Kudos
9 Replies
Duan_Z_
Beginner
984 Views

Is there something wrong in my linux kernel configuration ?

0 Kudos
Duan_Z_
Beginner
984 Views

When I use lspci | grep Performance

7f:08.2 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 (rev 04)
7f:09.2 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 (rev 04)
7f:0b.1 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring (rev 04)
7f:0b.5 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring (rev 04)
7f:0b.6 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring (rev 04)
7f:10.1 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface (rev 04)
7f:12.1 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 (rev 04)
7f:12.5 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 1 (rev 04)
ff:08.2 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 (rev 04)
ff:09.2 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 (rev 04)
ff:0b.1 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring (rev 04)
ff:0b.5 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring (rev 04)
ff:0b.6 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 2 Monitoring (rev 04)
ff:10.1 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface (rev 04)
ff:12.1 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 (rev 04)
ff:12.5 Performance counters: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 1 (rev 04)

The Performance counters are available but there are nothing in my /sys/devices

[liao@node1-centos7 devices]$ ls -d /sys/devices/uncore_*
ls: cannot access /sys/devices/uncore_*: No such file or directory

0 Kudos
Dmitry_R_Intel1
Employee
984 Views

What OS and what kernel version you have? One possibility is that OS kernel is too old and doesn't have support for uncore performance monitoring for your CPU.

0 Kudos
Duan_Z_
Beginner
984 Views

OS is the Centos 7 and the kernel version is 3.11.0 and 3.10.0-123.el7 (both wrong).

I can get the PMU counters information in  lspci | grep Performance. So I think maybe the BIOS is right.

0 Kudos
Duan_Z_
Beginner
984 Views

Accurately, it should be the kernel of the Intel-PMFS (https://github.com/linux-pmfs/pmfs), which is based on Linux kernel 3.11.0.

0 Kudos
Dmitry_R_Intel1
Employee
984 Views

From the pmu-tools readme:

"For Haswell EP support a 3.16+ kernel with the patches in patches-3.16 applied are needed. Future kernels should also support this by default."

So looks like you need to upgrade.

0 Kudos
Duan_Z_
Beginner
984 Views

But I can run on kernel 3.10.0-327.36.3.el7.x86_64, so is it a coincidence or am I very lucky?

I didn't find linux/tools/perf/pmu-events/ in linux3.11.0, was it caused by this? Is this a simple question that the kernel does not support?

0 Kudos
Duan_Z_
Beginner
984 Views

But I compared kernel 3.10.0-327.36.3.el7.x86_64. I didn't find anything different from 3.11.0. So, if I change to 3.16+, can I really solve this problem?

0 Kudos
McCalpinJohn
Honored Contributor III
984 Views

If I understand the naming conventions correctly, kernel 3.10.0-327.* is a Centos 7.2 or RHEL 7.2 kernel that has many back-ported features from later kernels.  We recently upgraded most of our systems from CentOS 7.2 to 7.3 (kernel 3.10.0-514.*), but a quick check on a box that is still running CentOS 7.2 shows basic Haswell performance counter support (including uncore devices) in /sys/bus/event_source/devices/.   Only a few of the uncore devices have event names defined, but events can often be encoded in raw format provided that the OS supports the interface to the relevant uncore box.
 

0 Kudos
Reply