perf/x86/intel/uncore: Disable I/O stacks to PMU mapping on ICX-D
authorAlexander Antonov <alexander.antonov@linux.intel.com>
Thu, 17 Nov 2022 12:28:26 +0000 (12:28 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 10:58:50 +0000 (11:58 +0100)
commit efe062705d149b20a15498cb999a9edbb8241e6f upstream.

Current implementation of I/O stacks to PMU mapping doesn't support ICX-D.
Detect ICX-D system to disable mapping.

Fixes: 10337e95e04c ("perf/x86/intel/uncore: Enable I/O stacks to IIO PMON mapping on ICX")
Signed-off-by: Alexander Antonov <alexander.antonov@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221117122833.3103580-5-alexander.antonov@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/events/intel/uncore.h
arch/x86/events/intel/uncore_snbep.c

index b9687980aab6d3d897a3423db71f30c6596167f9..d6f7c6c1a930ad8e7e997d35302b74a244757973 100644 (file)
@@ -2,6 +2,7 @@
 #include <linux/slab.h>
 #include <linux/pci.h>
 #include <asm/apicdef.h>
+#include <asm/intel-family.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
 
 #include <linux/perf_event.h>
index fcd95e93f479ae7120137c515525a77fc36cd60f..feef6ee6e0e17f693aadcf1e21003bad4a9d0815 100644 (file)
@@ -5144,6 +5144,11 @@ static int icx_iio_get_topology(struct intel_uncore_type *type)
 
 static int icx_iio_set_mapping(struct intel_uncore_type *type)
 {
+       /* Detect ICX-D system. This case is not supported */
+       if (boot_cpu_data.x86_model == INTEL_FAM6_ICELAKE_D) {
+               pmu_clear_mapping_attr(type->attr_update, &icx_iio_mapping_group);
+               return -EPERM;
+       }
        return pmu_iio_set_mapping(type, &icx_iio_mapping_group);
 }