-
Notifications
You must be signed in to change notification settings - Fork 248
Closed
Labels
Description
Memory counters are not reported when accessing msr registers via likwid-accessD
I have set up
- enable suid root (
chmod u+s
) onlikwid-accessD
- set
ap_sys_rawio=ep
capability forlikwid-accessD
I do see some performance counters getting reported correctly, however when I run as user I get the following output (shortened):
$ likwid-perfctr -verbose 1 -g MEM_DP -C 0 hostname
DEBUG - [access_client_startDaemon:197] Successfully opened socket /tmp/likwid-1636476 to daemon for CPU 0g
Executing: hostnameg
DEBUG - [perfmon_addEventSet:2130] Currently 1 groups of 2 activeg
DEBUG - [perfgroup_readGroup:871] Reading group MEM_DP from /usr/share/likwid/perfgroups/skylakeX/MEM_DP.txtg
DEBUG - [perfmon_addEventSet:2309] Added event INSTR_RETIRED_ANY for counter FIXC0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CPU_CLK_UNHALTED_CORE for counter FIXC1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CPU_CLK_UNHALTED_REF for counter FIXC2 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event PWR_PKG_ENERGY for counter PWR0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event PWR_DRAM_ENERGY for counter PWR3 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE for counter PMC0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_SCALAR_DOUBLE for counter PMC1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE for counter PMC2 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_512B_PACKED_DOUBLE for counter PMC3 to group 0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX0C0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX0C1g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX1C0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX1C1g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX2C0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX2C1g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX3C0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX3C1g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX4C0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX4C1g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX5C0g
DEBUG - [perfmon_addEventSet:2240] Cannot access counter register MBOX5C1g
Warning: Counter PMC3 cannot be used if Restricted Transactional Memory feature is enabled andg
bit 0 of register TSX_FORCE_ABORT is 0. As workaround enableg
allow_tsx_force_abort in /sys/devices/cpu/g
+-----------------------------------+--------------+
| Metric | HWThread 0 |
+-----------------------------------+--------------+
| Runtime (RDTSC) [s] | 8.2000 |
| Runtime unhalted [s] | 0.0002 |
| Clock [MHz] | 3075.5075 |
| CPI | 1.6783 |
| Energy [J] | 142.0850 |
| Power [W] | 17.3275 |
| Energy DRAM [J] | 3.8873 |
| Power DRAM [W] | 0.4741 |
| DP [MFLOP/s] | 3.170741e-06 |
| AVX DP [MFLOP/s] | 0 |
| Packed [MUOPS/s] | 0 |
| Scalar [MUOPS/s] | 3.170741e-06 |
| Memory read bandwidth [MBytes/s] | 0 |
| Memory read data volume [GBytes] | 0 |
| Memory write bandwidth [MBytes/s] | 0 |
| Memory write data volume [GBytes] | 0 |
| Memory bandwidth [MBytes/s] | 0 |
| Memory data volume [GBytes] | 0 |
| Operational intensity | inf |
+-----------------------------------+--------------+
Running the same command as root user gives:
$ likwid-perfctr -verbose 1 -g MEM_DP -C 0 hostname
DEBUG - [access_client_startDaemon:197] Successfully opened socket /tmp/likwid-1637065 to daemon for CPU 0g
Executing: hostnameg
DEBUG - [perfmon_addEventSet:2130] Currently 1 groups of 2 activeg
DEBUG - [perfgroup_readGroup:871] Reading group MEM_DP from /usr/share/likwid/perfgroups/skylakeX/MEM_DP.txtg
DEBUG - [perfmon_addEventSet:2309] Added event INSTR_RETIRED_ANY for counter FIXC0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CPU_CLK_UNHALTED_CORE for counter FIXC1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CPU_CLK_UNHALTED_REF for counter FIXC2 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event PWR_PKG_ENERGY for counter PWR0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event PWR_DRAM_ENERGY for counter PWR3 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE for counter PMC0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_SCALAR_DOUBLE for counter PMC1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE for counter PMC2 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event FP_ARITH_INST_RETIRED_512B_PACKED_DOUBLE for counter PMC3 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_RD for counter MBOX0C0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_WR for counter MBOX0C1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_RD for counter MBOX1C0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_WR for counter MBOX1C1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_RD for counter MBOX2C0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_WR for counter MBOX2C1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_RD for counter MBOX3C0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_WR for counter MBOX3C1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_RD for counter MBOX4C0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_WR for counter MBOX4C1 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_RD for counter MBOX5C0 to group 0g
DEBUG - [perfmon_addEventSet:2309] Added event CAS_COUNT_WR for counter MBOX5C1 to group 0g
Warning: Counter PMC3 cannot be used if Restricted Transactional Memory feature is enabled andg
bit 0 of register TSX_FORCE_ABORT is 0. As workaround enableg
allow_tsx_force_abort in /sys/devices/cpu/g
+-----------------------------------+------------+
| Metric | HWThread 0 |
+-----------------------------------+------------+
| Runtime (RDTSC) [s] | 0.0006 |
| Runtime unhalted [s] | 0.0002 |
| Clock [MHz] | 3495.8568 |
| CPI | 1.6064 |
| Energy [J] | 0.0459 |
| Power [W] | 72.9954 |
| Energy DRAM [J] | 0.0067 |
| Power DRAM [W] | 10.6090 |
| DP [MFLOP/s] | 0.0159 |
| AVX DP [MFLOP/s] | 0 |
| Packed [MUOPS/s] | 0 |
| Scalar [MUOPS/s] | 0.0159 |
| Memory read bandwidth [MBytes/s] | 129.3669 |
| Memory read data volume [GBytes] | 0.0001 |
| Memory write bandwidth [MBytes/s] | 112.9797 |
| Memory write data volume [GBytes] | 0.0001 |
| Memory bandwidth [MBytes/s] | 242.3466 |
| Memory data volume [GBytes] | 0.0002 |
| Operational intensity | 0.0001 |
+-----------------------------------+------------+
This is likwid Version 5.1.0 (commit: 233ab943543480cd46058b34616c174198ba0459
running on Debian Bullseye (Linux kernel version 5.10.40-1).
What am I missing?
Update: when I additionally grant the CAP_SYS_ADMIN
capability to likwid-accessD
then everything works as expected.