Skip to content

Commit

Permalink
perf tests: Fix a memory leak of cpu_map object in the openat_syscall…
Browse files Browse the repository at this point in the history
…_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
      torvalds#6 0x5625e51528e6 in run_test tests/builtin-test.c:358
      torvalds#7 0x5625e5152baf in test_and_print tests/builtin-test.c:388
      torvalds#8 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
      torvalds#9 0x5625e515572f in cmd_test tests/builtin-test.c:722
      torvalds#10 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
      torvalds#11 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
      torvalds#12 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
      torvalds#13 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
      torvalds#14 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)

Signed-off-by: Changbin Du <[email protected]>
Reviewed-by: Jiri Olsa <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
Cc: Daniel Borkmann <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Steven Rostedt (VMware) <[email protected]>
Fixes: f30a79b ("perf tools: Add reference counting for cpu_map object")
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
  • Loading branch information
changbindu authored and acmel committed Mar 19, 2019
1 parent 42dfa45 commit 93faa52
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion tools/perf/tests/openat-syscall-all-cpus.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ int test__openat_syscall_event_on_all_cpus(struct test *test __maybe_unused, int
if (IS_ERR(evsel)) {
tracing_path__strerror_open_tp(errno, errbuf, sizeof(errbuf), "syscalls", "sys_enter_openat");
pr_debug("%s\n", errbuf);
goto out_thread_map_delete;
goto out_cpu_map_delete;
}

if (perf_evsel__open(evsel, cpus, threads) < 0) {
Expand Down Expand Up @@ -119,6 +119,8 @@ int test__openat_syscall_event_on_all_cpus(struct test *test __maybe_unused, int
perf_evsel__close_fd(evsel);
out_evsel_delete:
perf_evsel__delete(evsel);
out_cpu_map_delete:
cpu_map__put(cpus);
out_thread_map_delete:
thread_map__put(threads);
return err;
Expand Down

0 comments on commit 93faa52

Please sign in to comment.