All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Stephane Eranian <eranian@google.com>,
	Andi Kleen <ak@linux.intel.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Ian Rogers <irogers@google.com>, Leo Yan <leo.yan@linaro.org>
Subject: Re: [PATCH 04/11] perf test: Fix cpu and thread map leaks in sw_clock_freq test
Date: Mon, 1 Mar 2021 18:24:23 +0100	[thread overview]
Message-ID: <YD0jR7ENbD7u01Zq@krava> (raw)
In-Reply-To: <20210301140409.184570-5-namhyung@kernel.org>

On Mon, Mar 01, 2021 at 11:04:02PM +0900, Namhyung Kim wrote:
> The evlist has the maps with its own refcounts so we don't need to set
> the pointers to NULL.  Otherwise following error was reported by Asan.
> 
> Also change the goto label since it doesn't need to have two.
> 
>   # perf test -v 25
>   25: Software clock events period values        :
>   --- start ---
>   test child forked, pid 149154
>   mmap size 528384B
>   mmap size 528384B
> 
>   =================================================================
>   ==149154==ERROR: LeakSanitizer: detected memory leaks
> 
>   Direct leak of 32 byte(s) in 1 object(s) allocated from:
>     #0 0x7fef5cd071f8 in __interceptor_realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:164
>     #1 0x56260d5e8b8e in perf_thread_map__realloc /home/namhyung/project/linux/tools/lib/perf/threadmap.c:23
>     #2 0x56260d3df7a9 in thread_map__new_by_tid util/thread_map.c:63
>     #3 0x56260d2ac6b2 in __test__sw_clock_freq tests/sw-clock.c:65
>     #4 0x56260d26d8fb in run_test tests/builtin-test.c:428
>     #5 0x56260d26d8fb in test_and_print tests/builtin-test.c:458
>     #6 0x56260d26fa53 in __cmd_test tests/builtin-test.c:679
>     #7 0x56260d26fa53 in cmd_test tests/builtin-test.c:825
>     #8 0x56260d2dbb64 in run_builtin /home/namhyung/project/linux/tools/perf/perf.c:313
>     #9 0x56260d165a88 in handle_internal_command /home/namhyung/project/linux/tools/perf/perf.c:365
>     #10 0x56260d165a88 in run_argv /home/namhyung/project/linux/tools/perf/perf.c:409
>     #11 0x56260d165a88 in main /home/namhyung/project/linux/tools/perf/perf.c:539
>     #12 0x7fef5c83cd09 in __libc_start_main ../csu/libc-start.c:308
> 
>     ...
>   test child finished with 1
>   ---- end ----
>   Software clock events period values      : FAILED!
> 
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/tests/sw-clock.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/perf/tests/sw-clock.c b/tools/perf/tests/sw-clock.c
> index a49c9e23053b..74988846be1d 100644
> --- a/tools/perf/tests/sw-clock.c
> +++ b/tools/perf/tests/sw-clock.c
> @@ -42,8 +42,8 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
>  		.disabled = 1,
>  		.freq = 1,
>  	};
> -	struct perf_cpu_map *cpus;
> -	struct perf_thread_map *threads;
> +	struct perf_cpu_map *cpus = NULL;
> +	struct perf_thread_map *threads = NULL;
>  	struct mmap *md;
>  
>  	attr.sample_freq = 500;
> @@ -66,14 +66,11 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
>  	if (!cpus || !threads) {
>  		err = -ENOMEM;
>  		pr_debug("Not enough memory to create thread/cpu maps\n");
> -		goto out_free_maps;
> +		goto out_delete_evlist;
>  	}
>  
>  	perf_evlist__set_maps(&evlist->core, cpus, threads);
>  
> -	cpus	= NULL;
> -	threads = NULL;

hum, so IIUC we added these and the other you remove in your patches long time ago,
because there was no refcounting at that time, right?

jirka

> -
>  	if (evlist__open(evlist)) {
>  		const char *knob = "/proc/sys/kernel/perf_event_max_sample_rate";
>  
> @@ -129,10 +126,9 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
>  		err = -1;
>  	}
>  
> -out_free_maps:
> +out_delete_evlist:
>  	perf_cpu_map__put(cpus);
>  	perf_thread_map__put(threads);
> -out_delete_evlist:
>  	evlist__delete(evlist);
>  	return err;
>  }
> -- 
> 2.30.1.766.gb4fecdf3b7-goog
> 


  reply	other threads:[~2021-03-01 21:59 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-01 14:03 [PATCHSET 00/11] perf test: Fix cpu/thread map leaks Namhyung Kim
2021-03-01 14:03 ` [PATCH 01/11] perf test: Fix cpu and thread map leaks in basic mmap test Namhyung Kim
2021-03-01 14:04 ` [PATCH 02/11] perf test: Fix a memory leak in attr test Namhyung Kim
2021-03-01 14:04 ` [PATCH 03/11] perf test: Fix cpu and thread map leaks in task_exit test Namhyung Kim
2021-03-01 14:04 ` [PATCH 04/11] perf test: Fix cpu and thread map leaks in sw_clock_freq test Namhyung Kim
2021-03-01 17:24   ` Jiri Olsa [this message]
2021-03-02  1:50     ` Namhyung Kim
2021-03-02 13:03       ` Jiri Olsa
2021-03-03 15:43         ` Arnaldo Carvalho de Melo
2021-03-01 14:04 ` [PATCH 05/11] perf test: Fix cpu and thread map leaks in code_reading test Namhyung Kim
2021-03-01 14:04 ` [PATCH 06/11] perf test: Fix cpu and thread map leaks in keep_tracking test Namhyung Kim
2021-03-01 14:04 ` [PATCH 07/11] perf test: Fix cpu and thread map leaks in switch_tracking test Namhyung Kim
2021-03-01 14:04 ` [PATCH 08/11] perf test: Fix a thread map leak in thread_map_synthesize test Namhyung Kim
2021-03-01 14:04 ` [PATCH 09/11] perf test: Fix a memory leak in thread_map_remove test Namhyung Kim
2021-03-01 14:04 ` [PATCH 10/11] perf test: Fix cpu map leaks in cpu_map_print test Namhyung Kim
2021-03-01 14:04 ` [PATCH 11/11] perf test: Fix cpu and thread map leaks in perf_time_to_tsc test Namhyung Kim

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=YD0jR7ENbD7u01Zq@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=leo.yan@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.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.