[PATCH v1] perf test: Fix leak in "Synthesize attr update" test

Ian Rogers posted 1 patch 11 months, 1 week ago
tools/perf/tests/event_update.c | 1 +
1 file changed, 1 insertion(+)
[PATCH v1] perf test: Fix leak in "Synthesize attr update" test
Posted by Ian Rogers 11 months, 1 week ago
The own_cpus map variable may be non-NULL and hold a reference, in
particular on hybrid machines. Do a put before overwriting the
variable to avoid a memory leak.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/event_update.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/tests/event_update.c b/tools/perf/tests/event_update.c
index d6b4ce3ef4ee..9301fde11366 100644
--- a/tools/perf/tests/event_update.c
+++ b/tools/perf/tests/event_update.c
@@ -109,6 +109,7 @@ static int test__event_update(struct test_suite *test __maybe_unused, int subtes
 	TEST_ASSERT_VAL("failed to synthesize attr update name",
 			!perf_event__synthesize_event_update_name(&tmp.tool, evsel, process_event_name));
 
+	perf_cpu_map__put(evsel->core.own_cpus);
 	evsel->core.own_cpus = perf_cpu_map__new("1,2,3");
 
 	TEST_ASSERT_VAL("failed to synthesize attr update cpus",
-- 
2.48.1.711.g2feabab25a-goog
Re: [PATCH v1] perf test: Fix leak in "Synthesize attr update" test
Posted by Namhyung Kim 11 months, 1 week ago
On Wed, 05 Mar 2025 11:19:31 -0800, Ian Rogers wrote:
> The own_cpus map variable may be non-NULL and hold a reference, in
> particular on hybrid machines. Do a put before overwriting the
> variable to avoid a memory leak.
> 
> 
Applied to perf-tools-next, thanks!

Best regards,
Namhyung
Re: [PATCH v1] perf test: Fix leak in "Synthesize attr update" test
Posted by James Clark 11 months, 1 week ago

On 05/03/2025 7:19 pm, Ian Rogers wrote:
> The own_cpus map variable may be non-NULL and hold a reference, in
> particular on hybrid machines. Do a put before overwriting the
> variable to avoid a memory leak.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>   tools/perf/tests/event_update.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tools/perf/tests/event_update.c b/tools/perf/tests/event_update.c
> index d6b4ce3ef4ee..9301fde11366 100644
> --- a/tools/perf/tests/event_update.c
> +++ b/tools/perf/tests/event_update.c
> @@ -109,6 +109,7 @@ static int test__event_update(struct test_suite *test __maybe_unused, int subtes
>   	TEST_ASSERT_VAL("failed to synthesize attr update name",
>   			!perf_event__synthesize_event_update_name(&tmp.tool, evsel, process_event_name));
>   
> +	perf_cpu_map__put(evsel->core.own_cpus);
>   	evsel->core.own_cpus = perf_cpu_map__new("1,2,3");
>   
>   	TEST_ASSERT_VAL("failed to synthesize attr update cpus",

Reviewed-by: James Clark <james.clark@linaro.org>