mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 07:06:50 +07:00
7efbae9089
In a multi node system with discontiguous node ids, nest event values are not showing up properly. eg. lscpu output: NUMA node0 CPU(s): 0-15 NUMA node8 CPU(s): 16-31 Nest event values on such systems can be counted on CPUs <= 15: $./perf stat -e 'nest_powerbus0_imc/PM_PB_CYC/' -C 0-14 -I 1000 sleep 1000 # time counts unit events 1.000294577 30,17,24,42,880 nest_powerbus0_imc/PM_PB_CYC/ But not on CPUs >= 16: $./perf stat -e 'nest_powerbus0_imc/PM_PB_CYC/' -C 16-28 -I 1000 sleep 1000 # time counts unit events 1.000049902 <not supported> nest_powerbus0_imc/PM_PB_CYC/ This is because, when fetching the reference count, the node id (which may be sparse) is used as the array index, not the node number (which is 0 based and contiguous). Fix it by using the node number as the array index. $./perf stat -e 'nest_powerbus0_imc/PM_PB_CYC/' -C 16-28 -I 1000 sleep 1000 # time counts unit events 1.000241961 26,12,35,28,704 nest_powerbus0_imc/PM_PB_CYC/ Signed-off-by: Anju T Sudhakar <anju@linux.vnet.ibm.com> [mpe: Change log tweaks for clarity and brevity] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
||
---|---|---|
.. | ||
req-gen | ||
8xx-pmu.c | ||
bhrb.S | ||
callchain.c | ||
core-book3s.c | ||
core-fsl-emb.c | ||
e500-pmu.c | ||
e6500-pmu.c | ||
hv-24x7-catalog.h | ||
hv-24x7-domains.h | ||
hv-24x7.c | ||
hv-24x7.h | ||
hv-common.c | ||
hv-common.h | ||
hv-gpci-requests.h | ||
hv-gpci.c | ||
hv-gpci.h | ||
imc-pmu.c | ||
isa207-common.c | ||
isa207-common.h | ||
Makefile | ||
mpc7450-pmu.c | ||
perf_regs.c | ||
power4-pmu.c | ||
power5-pmu.c | ||
power5+-pmu.c | ||
power6-pmu.c | ||
power7-events-list.h | ||
power7-pmu.c | ||
power8-events-list.h | ||
power8-pmu.c | ||
power9-events-list.h | ||
power9-pmu.c | ||
ppc970-pmu.c |