perf/x86/intel/uncore: Add Sapphire Rapids server IIO support
authorKan Liang <kan.liang@linux.intel.com>
Wed, 30 Jun 2021 21:08:27 +0000 (14:08 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 2 Jul 2021 13:58:37 +0000 (15:58 +0200)
The IIO stacks are responsible for managing the traffic between the PCI
Express* (PCIe*) domain and the mesh domain. The IIO PMON block is
situated near the IIO stacks traffic controller capturing the traffic
controller as well as the PCIe* root port information.

The layout of the control registers for a IIO uncore unit is a little
bit different from the generic one.

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-4-git-send-email-kan.liang@linux.intel.com
arch/x86/events/intel/uncore_snbep.c

index 8a470d24ae6fbd1a355bf4285633b4457506f5ab..3b4039577f09931bd1fc1752c0869a74d204338c 100644 (file)
@@ -5596,11 +5596,18 @@ static struct intel_uncore_type spr_uncore_chabox = {
        .format_group           = &spr_uncore_chabox_format_group,
 };
 
+static struct intel_uncore_type spr_uncore_iio = {
+       .name                   = "iio",
+       .event_mask             = SNBEP_PMON_RAW_EVENT_MASK,
+       .event_mask_ext         = SNR_IIO_PMON_RAW_EVENT_MASK_EXT,
+       .format_group           = &snr_uncore_iio_format_group,
+};
+
 #define UNCORE_SPR_NUM_UNCORE_TYPES            12
 
 static struct intel_uncore_type *spr_uncores[UNCORE_SPR_NUM_UNCORE_TYPES] = {
        &spr_uncore_chabox,
-       NULL,
+       &spr_uncore_iio,
        NULL,
        NULL,
        NULL,