All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.9 18/27] perf evsel: Free evsel->counts in perf_evsel__exit()
Date: Fri, 29 Mar 2019 20:55:44 -0400	[thread overview]
Message-ID: <20190330005555.28087-18-sashal@kernel.org> (raw)
In-Reply-To: <20190330005555.28087-1-sashal@kernel.org>

From: Arnaldo Carvalho de Melo <acme@redhat.com>

[ Upstream commit 42dfa451d825a2ad15793c476f73e7bbc0f9d312 ]

Using gcc's ASan, Changbin reports:

  =================================================================
  ==7494==ERROR: LeakSanitizer: detected memory leaks

  Direct leak of 48 byte(s) in 1 object(s) allocated from:
      #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138)
      #1 0x5625e5330a5e in zalloc util/util.h:23
      #2 0x5625e5330a9b in perf_counts__new util/counts.c:10
      #3 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47
      #4 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505
      #5 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347
      #6 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47
      #7 0x5625e51528e6 in run_test tests/builtin-test.c:358
      #8 0x5625e5152baf in test_and_print tests/builtin-test.c:388
      #9 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
      #10 0x5625e515572f in cmd_test tests/builtin-test.c:722
      #11 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
      #12 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
      #13 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
      #14 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
      #15 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)

  Indirect leak of 72 byte(s) in 1 object(s) allocated from:
      #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138)
      #1 0x5625e532560d in zalloc util/util.h:23
      #2 0x5625e532566b in xyarray__new util/xyarray.c:10
      #3 0x5625e5330aba in perf_counts__new util/counts.c:15
      #4 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47
      #5 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505
      #6 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347
      #7 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47
      #8 0x5625e51528e6 in run_test tests/builtin-test.c:358
      #9 0x5625e5152baf in test_and_print tests/builtin-test.c:388
      #10 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
      #11 0x5625e515572f in cmd_test tests/builtin-test.c:722
      #12 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
      #13 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
      #14 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
      #15 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
      #16 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)

His patch took care of evsel->prev_raw_counts, but the above backtraces
are about evsel->counts, so fix that instead.

Reported-by: Changbin Du <changbin.du@gmail.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
Link: https://lkml.kernel.org/n/tip-hd1x13g59f0nuhe4anxhsmfp@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 tools/perf/util/evsel.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index f7128c2a6386..a62f79558146 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1167,6 +1167,7 @@ void perf_evsel__exit(struct perf_evsel *evsel)
 {
 	assert(list_empty(&evsel->node));
 	assert(evsel->evlist == NULL);
+	perf_evsel__free_counts(evsel);
 	perf_evsel__free_fd(evsel);
 	perf_evsel__free_id(evsel);
 	perf_evsel__free_config_terms(evsel);
-- 
2.19.1


  parent reply	other threads:[~2019-03-30  0:56 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-30  0:55 [PATCH AUTOSEL 4.9 01/27] ARC: u-boot args: check that magic number is correct Sasha Levin
2019-03-30  0:55 ` Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 02/27] perf/core: Restore mmap record type correctly Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 03/27] ext4: add missing brelse() in add_new_gdb_meta_bg() Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 04/27] ext4: report real fs size after failed resize Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 05/27] ALSA: echoaudio: add a check for ioremap_nocache Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 06/27] ALSA: sb8: add a check for request_region Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 07/27] IB/mlx4: Fix race condition between catas error reset and aliasguid flows Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 08/27] mmc: davinci: remove extraneous __init annotation Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 09/27] ALSA: opl3: fix mismatch between snd_opl3_drum_switch definition and declaration Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 10/27] thermal/int340x_thermal: Add additional UUIDs Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 11/27] thermal/int340x_thermal: fix mode setting Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 12/27] tools/power turbostat: return the exit status of a command Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 13/27] perf config: Fix an error in the config template documentation Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 14/27] perf config: Fix a memory leak in collect_config() Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 15/27] perf build-id: Fix memory leak in print_sdt_events() Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 16/27] perf top: Fix error handling in cmd_top() Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 17/27] perf hist: Add missing map__put() in error case Sasha Levin
2019-03-30  0:55 ` Sasha Levin [this message]
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 19/27] perf tests: Fix a memory leak of cpu_map object in the openat_syscall_event_on_all_cpus test Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 20/27] perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test() Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 21/27] irqchip/mbigen: Don't clear eventid when freeing an MSI Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 22/27] x86/hpet: Prevent potential NULL pointer dereference Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 23/27] x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 24/27] iommu/vt-d: Check capability before disabling protected memory Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 25/27] x86/hw_breakpoints: Make default case in hw_breakpoint_arch_parse() return an error Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 26/27] fix incorrect error code mapping for OBJECTID_NOT_FOUND Sasha Levin
2019-03-30  0:55 ` [PATCH AUTOSEL 4.9 27/27] ext4: prohibit fstrim in norecovery mode Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190330005555.28087-18-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=acme@redhat.com \
    --cc=ast@kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.