Commit 88e48238 authored by Sohaib Mohamed's avatar Sohaib Mohamed Committed by Arnaldo Carvalho de Melo

perf bench futex: Fix memory leak of perf_cpu_map__new()

ASan reports memory leaks while running:

  $ sudo ./perf bench futex all

The leaks are caused by perf_cpu_map__new not being freed.
This patch adds the missing perf_cpu_map__put since it calls
cpu_map_delete implicitly.

Fixes: 9c3516d1 ("libperf: Add perf_cpu_map__new()/perf_cpu_map__read() functions")
Signed-off-by: default avatarSohaib Mohamed <sohaib.amhmd@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: André Almeida <andrealmeid@collabora.com>
Cc: Darren Hart <dvhart@infradead.org>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sohaib Mohamed <sohaib.amhmd@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lore.kernel.org/lkml/20211112201134.77892-1-sohaib.amhmd@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 3442b5e0
...@@ -233,6 +233,7 @@ int bench_futex_lock_pi(int argc, const char **argv) ...@@ -233,6 +233,7 @@ int bench_futex_lock_pi(int argc, const char **argv)
print_summary(); print_summary();
free(worker); free(worker);
perf_cpu_map__put(cpu);
return ret; return ret;
err: err:
usage_with_options(bench_futex_lock_pi_usage, options); usage_with_options(bench_futex_lock_pi_usage, options);
......
...@@ -294,6 +294,7 @@ int bench_futex_requeue(int argc, const char **argv) ...@@ -294,6 +294,7 @@ int bench_futex_requeue(int argc, const char **argv)
print_summary(); print_summary();
free(worker); free(worker);
perf_cpu_map__put(cpu);
return ret; return ret;
err: err:
usage_with_options(bench_futex_requeue_usage, options); usage_with_options(bench_futex_requeue_usage, options);
......
...@@ -329,6 +329,7 @@ int bench_futex_wake_parallel(int argc, const char **argv) ...@@ -329,6 +329,7 @@ int bench_futex_wake_parallel(int argc, const char **argv)
print_summary(); print_summary();
free(blocked_worker); free(blocked_worker);
perf_cpu_map__put(cpu);
return ret; return ret;
} }
#endif /* HAVE_PTHREAD_BARRIER */ #endif /* HAVE_PTHREAD_BARRIER */
...@@ -222,5 +222,6 @@ int bench_futex_wake(int argc, const char **argv) ...@@ -222,5 +222,6 @@ int bench_futex_wake(int argc, const char **argv)
print_summary(); print_summary();
free(worker); free(worker);
perf_cpu_map__put(cpu);
return ret; return ret;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment