perf/x86/intel/uncore: Add Sapphire Rapids server M3UPI support
authorKan Liang <kan.liang@linux.intel.com>
Wed, 30 Jun 2021 21:08:34 +0000 (14:08 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 2 Jul 2021 13:58:40 +0000 (15:58 +0200)
M3 Intel UPI is the interface between the mesh and the Intel UPI link
layer. It is responsible for translating between the mesh protocol
packets and the flits that are used for transmitting data across the
Intel UPI interface.

The layout of the control registers for a M3UPI uncore unit is similar
to a UPI uncore unit.

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Link: https://lore.kernel.org/r/1625087320-194204-11-git-send-email-kan.liang@linux.intel.com
arch/x86/events/intel/uncore_snbep.c

index 20045ba723b5afad1cd1e7864ae1f1fee8a2f7dc..14b9b236772554c7f2b28bf09a0550cbcaa4e3d0 100644 (file)
@@ -5703,6 +5703,11 @@ static struct intel_uncore_type spr_uncore_upi = {
        .name                   = "upi",
 };
 
+static struct intel_uncore_type spr_uncore_m3upi = {
+       SPR_UNCORE_PCI_COMMON_FORMAT(),
+       .name                   = "m3upi",
+};
+
 #define UNCORE_SPR_NUM_UNCORE_TYPES            12
 
 static struct intel_uncore_type *spr_uncores[UNCORE_SPR_NUM_UNCORE_TYPES] = {
@@ -5715,7 +5720,7 @@ static struct intel_uncore_type *spr_uncores[UNCORE_SPR_NUM_UNCORE_TYPES] = {
        &spr_uncore_imc,
        &spr_uncore_m2m,
        &spr_uncore_upi,
-       NULL,
+       &spr_uncore_m3upi,
        NULL,
        NULL,
 };