diff options
| author | Changbin Du <changbin.du@gmail.com> | 2019-03-16 04:05:54 -0400 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-03-19 15:52:05 -0400 |
| commit | 93faa52e8371f0291ee1ff4994edae2b336b6233 (patch) | |
| tree | 341958ad40534654687bc17e3dbb7a84dbdabef2 /tools/perf/tests | |
| parent | 42dfa451d825a2ad15793c476f73e7bbc0f9d312 (diff) | |
perf tests: Fix a memory leak of cpu_map object in the openat_syscall_event_on_all_cpus test
=================================================================
==7497==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 40 byte(s) in 1 object(s) allocated from:
#0 0x7f0333a88f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30)
#1 0x5625e5326213 in cpu_map__trim_new util/cpumap.c:45
#2 0x5625e5326703 in cpu_map__read util/cpumap.c:103
#3 0x5625e53267ef in cpu_map__read_all_cpu_map util/cpumap.c:120
#4 0x5625e5326915 in cpu_map__new util/cpumap.c:135
#5 0x5625e517b355 in test__openat_syscall_event_on_all_cpus tests/openat-syscall-all-cpus.c:36
#6 0x5625e51528e6 in run_test tests/builtin-test.c:358
#7 0x5625e5152baf in test_and_print tests/builtin-test.c:388
#8 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
#9 0x5625e515572f in cmd_test tests/builtin-test.c:722
#10 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
#11 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
#12 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
#13 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
#14 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
Signed-off-by: Changbin Du <changbin.du@gmail.com>
Reviewed-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
Fixes: f30a79b012e5 ("perf tools: Add reference counting for cpu_map object")
Link: http://lkml.kernel.org/r/20190316080556.3075-15-changbin.du@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/tests')
| -rw-r--r-- | tools/perf/tests/openat-syscall-all-cpus.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/perf/tests/openat-syscall-all-cpus.c b/tools/perf/tests/openat-syscall-all-cpus.c index c531e6deb104..493ecb611540 100644 --- a/tools/perf/tests/openat-syscall-all-cpus.c +++ b/tools/perf/tests/openat-syscall-all-cpus.c | |||
| @@ -45,7 +45,7 @@ int test__openat_syscall_event_on_all_cpus(struct test *test __maybe_unused, int | |||
| 45 | if (IS_ERR(evsel)) { | 45 | if (IS_ERR(evsel)) { |
| 46 | tracing_path__strerror_open_tp(errno, errbuf, sizeof(errbuf), "syscalls", "sys_enter_openat"); | 46 | tracing_path__strerror_open_tp(errno, errbuf, sizeof(errbuf), "syscalls", "sys_enter_openat"); |
| 47 | pr_debug("%s\n", errbuf); | 47 | pr_debug("%s\n", errbuf); |
| 48 | goto out_thread_map_delete; | 48 | goto out_cpu_map_delete; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | if (perf_evsel__open(evsel, cpus, threads) < 0) { | 51 | if (perf_evsel__open(evsel, cpus, threads) < 0) { |
| @@ -119,6 +119,8 @@ out_close_fd: | |||
| 119 | perf_evsel__close_fd(evsel); | 119 | perf_evsel__close_fd(evsel); |
| 120 | out_evsel_delete: | 120 | out_evsel_delete: |
| 121 | perf_evsel__delete(evsel); | 121 | perf_evsel__delete(evsel); |
| 122 | out_cpu_map_delete: | ||
| 123 | cpu_map__put(cpus); | ||
| 122 | out_thread_map_delete: | 124 | out_thread_map_delete: |
| 123 | thread_map__put(threads); | 125 | thread_map__put(threads); |
| 124 | return err; | 126 | return err; |
