Message ID | 20240711102436.4432-8-Dhananjay.Ugwekar@amd.com |
---|---|
State | New |
Headers | show |
Series | Add per-core RAPL energy counter support for AMD CPUs | expand |
On Thu, 2024-07-11 at 10:24 +0000, Dhananjay Ugwekar wrote: > Prep for per-core RAPL PMU addition. > > No functional change. > > Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com> Reviewed-by: Zhang Rui <rui.zhang@intel.com> -rui > --- > arch/x86/events/rapl.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c > index 1d36565d0cb9..362e82284ccb 100644 > --- a/arch/x86/events/rapl.c > +++ b/arch/x86/events/rapl.c > @@ -694,7 +694,7 @@ static void __init rapl_advertise(void) > } > } > > -static void cleanup_rapl_pmus(void) > +static void cleanup_rapl_pmus(struct rapl_pmus *rapl_pmus) > { > int i; > > @@ -712,9 +712,10 @@ static const struct attribute_group > *rapl_attr_update[] = { > NULL, > }; > > -static int __init init_rapl_pmus(void) > +static int __init init_rapl_pmus(struct rapl_pmus **rapl_pmus_ptr) > { > int nr_rapl_pmu = topology_max_packages(); > + struct rapl_pmus *rapl_pmus; > > if (!rapl_pmu_is_pkg_scope()) > nr_rapl_pmu *= topology_max_dies_per_package(); > @@ -738,6 +739,9 @@ static int __init init_rapl_pmus(void) > rapl_pmus->pmu.read = rapl_pmu_event_read; > rapl_pmus->pmu.module = THIS_MODULE; > rapl_pmus->pmu.capabilities = PERF_PMU_CAP_NO_EXCLUDE; > + > + *rapl_pmus_ptr = rapl_pmus; > + > return 0; > } > > @@ -879,7 +883,7 @@ static int __init rapl_pmu_init(void) > if (ret) > return ret; > > - ret = init_rapl_pmus(); > + ret = init_rapl_pmus(&rapl_pmus); > if (ret) > return ret; > > @@ -903,7 +907,7 @@ static int __init rapl_pmu_init(void) > cpuhp_remove_state(CPUHP_AP_PERF_X86_RAPL_ONLINE); > out: > pr_warn("Initialization failed (%d), disabled\n", ret); > - cleanup_rapl_pmus(); > + cleanup_rapl_pmus(rapl_pmus); > return ret; > } > module_init(rapl_pmu_init); > @@ -912,6 +916,6 @@ static void __exit intel_rapl_exit(void) > { > cpuhp_remove_state_nocalls(CPUHP_AP_PERF_X86_RAPL_ONLINE); > perf_pmu_unregister(&rapl_pmus->pmu); > - cleanup_rapl_pmus(); > + cleanup_rapl_pmus(rapl_pmus); > } > module_exit(intel_rapl_exit);
diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c index 1d36565d0cb9..362e82284ccb 100644 --- a/arch/x86/events/rapl.c +++ b/arch/x86/events/rapl.c @@ -694,7 +694,7 @@ static void __init rapl_advertise(void) } } -static void cleanup_rapl_pmus(void) +static void cleanup_rapl_pmus(struct rapl_pmus *rapl_pmus) { int i; @@ -712,9 +712,10 @@ static const struct attribute_group *rapl_attr_update[] = { NULL, }; -static int __init init_rapl_pmus(void) +static int __init init_rapl_pmus(struct rapl_pmus **rapl_pmus_ptr) { int nr_rapl_pmu = topology_max_packages(); + struct rapl_pmus *rapl_pmus; if (!rapl_pmu_is_pkg_scope()) nr_rapl_pmu *= topology_max_dies_per_package(); @@ -738,6 +739,9 @@ static int __init init_rapl_pmus(void) rapl_pmus->pmu.read = rapl_pmu_event_read; rapl_pmus->pmu.module = THIS_MODULE; rapl_pmus->pmu.capabilities = PERF_PMU_CAP_NO_EXCLUDE; + + *rapl_pmus_ptr = rapl_pmus; + return 0; } @@ -879,7 +883,7 @@ static int __init rapl_pmu_init(void) if (ret) return ret; - ret = init_rapl_pmus(); + ret = init_rapl_pmus(&rapl_pmus); if (ret) return ret; @@ -903,7 +907,7 @@ static int __init rapl_pmu_init(void) cpuhp_remove_state(CPUHP_AP_PERF_X86_RAPL_ONLINE); out: pr_warn("Initialization failed (%d), disabled\n", ret); - cleanup_rapl_pmus(); + cleanup_rapl_pmus(rapl_pmus); return ret; } module_init(rapl_pmu_init); @@ -912,6 +916,6 @@ static void __exit intel_rapl_exit(void) { cpuhp_remove_state_nocalls(CPUHP_AP_PERF_X86_RAPL_ONLINE); perf_pmu_unregister(&rapl_pmus->pmu); - cleanup_rapl_pmus(); + cleanup_rapl_pmus(rapl_pmus); } module_exit(intel_rapl_exit);
Prep for per-core RAPL PMU addition. No functional change. Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com> --- arch/x86/events/rapl.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)