perf/x86/amd/uncore: Refactor uncore management
authorSandipan Das <sandipan.das@amd.com>
Thu, 5 Oct 2023 05:23:11 +0000 (10:53 +0530)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 9 Oct 2023 14:12:23 +0000 (16:12 +0200)
commitd6389d3ccc136a4229a8d497899c64f80fd3c5b3
tree2c9ae6d159a5a794cda8f19b3672a3ea6b48e61b
parent1765bb61bb18a7b81f68806de6e8b8f5000f65bf
perf/x86/amd/uncore: Refactor uncore management

Since struct amd_uncore is used to manage per-cpu contexts, rename it to
amd_uncore_ctx in order to better reflect its purpose. Add a new struct
amd_uncore_pmu to encapsulate all attributes which are shared by per-cpu
contexts for a corresponding PMU. These include the number of counters,
active mask, MSR and RDPMC base addresses, etc. Since the struct pmu is
now embedded, the corresponding amd_uncore_pmu for a given event can be
found by simply using container_of().

Finally, move all PMU-specific code to separate functions. While the
original event management functions continue to provide the base
functionality, all PMU-specific quirks and customizations are applied in
separate functions.

The motivation is to simplify the management of uncore PMUs.

Signed-off-by: Sandipan Das <sandipan.das@amd.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/24b38c49a5dae65d8c96e5d75a2b96ae97aaa651.1696425185.git.sandipan.das@amd.com
arch/x86/events/amd/uncore.c