aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/events/intel/uncore_discovery.h
diff options
context:
space:
mode:
authorKan Liang <kan.liang@linux.intel.com>2021-06-30 14:08:25 -0700
committerPeter Zijlstra <peterz@infradead.org>2021-07-02 15:58:36 +0200
commitc54c53d9921adef2c239cb43d5a936b63c57ebf0 (patch)
tree08192f4057fb136efb2e5cbf74adbb2a1bed6b02 /arch/x86/events/intel/uncore_discovery.h
parentperf: Fix task context PMU for Hetero (diff)
downloadlinux-dev-c54c53d9921adef2c239cb43d5a936b63c57ebf0.tar.xz
linux-dev-c54c53d9921adef2c239cb43d5a936b63c57ebf0.zip
perf/x86/intel/uncore: Add Sapphire Rapids server framework
Intel Sapphire Rapids supports a discovery mechanism, that allows an uncore driver to discover the different components ("boxes") of the chip. All the generic information of the uncore boxes should be retrieved from the discovery tables. This has been enabled with the commit edae1f06c2cd ("perf/x86/intel/uncore: Parse uncore discovery tables"). Add use_discovery to indicate the case. The uncore driver doesn't need to hard code the generic information for each uncore box. But we still need to enable various functionality that cannot be directly discovered. To support these functionalities, the Sapphire Rapids server framework is introduced here. Each specific uncore unit will be added into the framework in the following patches. Add use_discovery to indicate that the discovery mechanism is required for the platform. Currently, Intel Sapphire Rapids is one of the platforms. The box ID from the discovery table is the accurate index. Use it if applicable. All the undiscovered platform-specific features will be hard code in the spr_uncores[]. Add uncore_type_customized_copy(), instead of the memcpy, to only overwrite these features. The specific uncore unit hasn't been added here. From user's perspective, there is nothing changed for now. 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-2-git-send-email-kan.liang@linux.intel.com
Diffstat (limited to 'arch/x86/events/intel/uncore_discovery.h')
-rw-r--r--arch/x86/events/intel/uncore_discovery.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/events/intel/uncore_discovery.h b/arch/x86/events/intel/uncore_discovery.h
index 1d652939a01c..d7ccc8af6d18 100644
--- a/arch/x86/events/intel/uncore_discovery.h
+++ b/arch/x86/events/intel/uncore_discovery.h
@@ -129,3 +129,6 @@ void intel_uncore_clear_discovery_tables(void);
void intel_uncore_generic_uncore_cpu_init(void);
int intel_uncore_generic_uncore_pci_init(void);
void intel_uncore_generic_uncore_mmio_init(void);
+
+struct intel_uncore_type **
+intel_uncore_generic_init_uncores(enum uncore_access_type type_id);