perf/x86/intel/uncore: Fix IIO cleanup mapping procedure for SNR/ICX
Subsystems (2)
PATCH RESEND 1/1 perf/x86/intel/uncore: Fix IIO cleanup mapping procedure for SNR/ICX
From: Alexander Antonov <[email protected]>
Cleanup mapping procedure for IIO PMU is needed to free memory which was allocated for topology data and for attributes in IIO mapping attribute_group.
Current implementation of this procedure for Snowridge and Icelake Server platforms doesn't free allocated memory that can be a reason for memory leak issue.
Fix the issue with IIO cleanup mapping procedure for these platforms to release allocated memory.
--- arch/x86/events/intel/uncore_snbep.c | 40 +++++++++++++++++++--------- 1 file changed, 28 insertions(+), 12 deletions(-)
arch/x86/events/intel/uncore_snbep.c +28 -12
@@ -3836,26 +3836,32 @@ pmu_iio_set_mapping(struct intel_uncore_type *type, struct attribute_group *ag)return ret; } -static int skx_iio_set_mapping (struct intel_uncore_type *type) -{ -return pmu_iio_set_mapping (type, &skx_iio_mapping_group); -} - -static void skx_iio_cleanup_mapping (struct intel_uncore_type *type) +static void +pmu_iio_cleanup_mapping (struct intel_uncore_type *type,struct attribute_group *ag) { -struct attribute **attr = skx_iio_mapping_group.attrs; +struct attribute **attr = ag->attrs;if (!attr)return ;for (; *attr; attr++)kfree ((*attr)->name); -kfree (attr_to_ext_attr (*skx_iio_mapping_group.attrs)); -kfree (skx_iio_mapping_group.attrs); - skx_iio_mapping_group.attrs =NULL ; +kfree (attr_to_ext_attr (*ag->attrs)); +kfree (ag->attrs); + ag->attrs =NULL ;kfree (type->topology); } +static int skx_iio_set_mapping (struct intel_uncore_type *type) +{ +return pmu_iio_set_mapping (type, &skx_iio_mapping_group); +} + +static void skx_iio_cleanup_mapping (struct intel_uncore_type *type) +{ +pmu_iio_cleanup_mapping (type, &skx_iio_mapping_group); +} +static struct intel_uncore_type skx_uncore_iio = { .name ="iio" , .num_counters =4 ,
@@ -4499,6 +4505,11 @@ static int snr_iio_set_mapping(struct intel_uncore_type *type)return pmu_iio_set_mapping (type, &snr_iio_mapping_group); } +static void snr_iio_cleanup_mapping (struct intel_uncore_type *type) +{ +pmu_iio_cleanup_mapping (type, &snr_iio_mapping_group); +} +static struct intel_uncore_type snr_uncore_iio = { .name ="iio" , .num_counters =4 ,
@@ -4515,7 +4526,7 @@ static struct intel_uncore_type snr_uncore_iio = { .attr_update = snr_iio_attr_update, .get_topology = snr_iio_get_topology, .set_mapping = snr_iio_set_mapping, - .cleanup_mapping = skx_iio_cleanup_mapping, + .cleanup_mapping = snr_iio_cleanup_mapping, };static struct intel_uncore_type snr_uncore_irp = {
@@ -5090,6 +5101,11 @@ static int icx_iio_set_mapping(struct intel_uncore_type *type)return pmu_iio_set_mapping (type, &icx_iio_mapping_group); } +static void icx_iio_cleanup_mapping (struct intel_uncore_type *type) +{ +pmu_iio_cleanup_mapping (type, &icx_iio_mapping_group); +} +static struct intel_uncore_type icx_uncore_iio = { .name ="iio" , .num_counters =4 ,
@@ -5107,7 +5123,7 @@ static struct intel_uncore_type icx_uncore_iio = { .attr_update = icx_iio_attr_update, .get_topology = icx_iio_get_topology, .set_mapping = icx_iio_set_mapping, - .cleanup_mapping = skx_iio_cleanup_mapping, + .cleanup_mapping = icx_iio_cleanup_mapping, };static struct intel_uncore_type icx_uncore_irp = {
base-commit: 3dbdb38e286903ec220aaf1fb29a8d94297da246
Signature · 1 line
2.21.3
Peter Zijlstra
maintainerQuoted 11 lines · On Wed, Jul 07, 2021 at 09:54:55AM +0300, [email protected]…
From: Alexander Antonov <[email protected]>
Cleanup mapping procedure for IIO PMU is needed to free memory which was allocated for topology data and for attributes in IIO mapping
attribute_group.
Current implementation of this procedure for Snowridge and Icelake Server platforms doesn't free allocated memory that can be a reason for memory leak issue.
Fix the issue with IIO cleanup mapping procedure for these platforms to release allocated memory.
Quoted 2 lines
Fixes 10337e95e04c ("perf/x86/intel/uncore: Enable I/O stacks to IIO PMON mapping on ICX")
This whitespace is wrong.
Quoted 2 lines
Reviewed-by Kan Liang <[email protected]>Signed-off-by Alexander Antonov <[email protected]>
Why am I getting a resend of this? Kan replied only yesterday.. folding tags isn't a reason to resend, we have scripts for that. At the very least you could've tried making the Changelog readable /