perf bench futex: Fix memory leak of perf_cpu_map__new()
[ Upstream commit 88e48238d53682281c9de2a0b65d24d3b64542a0 ]
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: 9c3516d1b8
("libperf: Add perf_cpu_map__new()/perf_cpu_map__read() functions")
Signed-off-by: Sohaib 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
642fc22210
commit
9e0df711f8
|
@ -224,6 +224,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);
|
||||||
|
|
|
@ -215,6 +215,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);
|
||||||
|
|
|
@ -319,6 +319,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 */
|
||||||
|
|
|
@ -209,5 +209,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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue