[PATCH 0/2] perf/x86/intel/uncore: Derive die id from NUMA info with more than 8 nodes

From: Steve Wahl
Date: Fri Jan 08 2021 - 10:37:06 EST


For Intel uncore, the registers being used to identify the die don't
contain enough bits to uniquely identify more than 8 dies. On
systems with more than 8 dies, this results in error messages of the
form "skx_uncore: probe of XXXX:XX:XX.X failed with error -22", and
some perf counters showing up as "<not supported>".

On such systems, use NUMA information to determine die id.

Continue to use the register information with 8 or fewer numa nodes to
cover cases like NUMA not being enabled.

The first patch moves translation from physical to logical die id
earlier in the code, and stores only the logical id. The logical id
is the only one that is really used. Without this change the second
patch would have to store both physical and logical id, which was much
more complicated.

The second patch adds the alternative of deriving the logical die id
from the NUMA information when there are more than 8 nodes.

Steve Wahl (2):
perf/x86/intel/uncore: Store the logical die id instead of the
physical die id.
perf/x86/intel/uncore: With > 8 nodes, get pci bus die id from NUMA
info

arch/x86/events/intel/uncore.c | 58 +++++---------
arch/x86/events/intel/uncore.h | 5 +-
arch/x86/events/intel/uncore_snb.c | 2 +-
arch/x86/events/intel/uncore_snbep.c | 114 ++++++++++++++++++---------
4 files changed, 99 insertions(+), 80 deletions(-)

--
2.26.2