[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aSalGg5f8xaM_GBX@google.com>
Date: Tue, 25 Nov 2025 22:58:34 -0800
From: Namhyung Kim <namhyung@...nel.org>
To: Ian Rogers <irogers@...gle.com>
Cc: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Adrian Hunter <adrian.hunter@...el.com>,
James Clark <james.clark@...aro.org>,
Collin Funk <collin.funk1@...il.com>,
Dmitry Vyukov <dvyukov@...gle.com>, Andi Kleen <ak@...ux.intel.com>,
Thomas Falcon <thomas.falcon@...el.com>, Leo Yan <leo.yan@....com>,
Yicong Yang <yangyicong@...ilicon.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Masami Hiramatsu (Google)" <mhiramat@...nel.org>,
Stephen Brennan <stephen.s.brennan@...cle.com>,
Haibo Xu <haibo1.xu@...el.com>, linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org
Subject: Re: [PATCH v1 05/17] perf probe-event: Ensure probe event nsinfo is
always cleared
On Sat, Nov 22, 2025 at 12:19:17AM -0800, Ian Rogers wrote:
> Move nsinfo__zput from cleanup_perf_probe_events to
> clear_perf_probe_event so it is always executed. Clean up
> clear_perf_probe_event to not call nsinfo__zput and use the pev
Do you mean clear_perf_probe_events?
> variable to avoid repeated array accesses.
>
> Signed-off-by: Ian Rogers <irogers@...gle.com>
> ---
> tools/perf/util/probe-event.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 6ab2eb551b6c..710e4620923e 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -2419,6 +2419,7 @@ void clear_perf_probe_event(struct perf_probe_event *pev)
> }
> pev->nargs = 0;
> zfree(&pev->args);
> + nsinfo__zput(pev->nsi);
I'm not sure pev->nsi is always set properly. At least it seems to miss
in the perf_probe_event__copy().
Thanks,
Namhyung
> }
>
> #define strdup_or_goto(str, label) \
> @@ -3767,12 +3768,11 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
> /* Loop 3: cleanup and free trace events */
> for (i = 0; i < npevs; i++) {
> pev = &pevs[i];
> - for (j = 0; j < pevs[i].ntevs; j++)
> - clear_probe_trace_event(&pevs[i].tevs[j]);
> - zfree(&pevs[i].tevs);
> - pevs[i].ntevs = 0;
> - nsinfo__zput(pev->nsi);
> - clear_perf_probe_event(&pevs[i]);
> + for (j = 0; j < pev->ntevs; j++)
> + clear_probe_trace_event(&pev->tevs[j]);
> + zfree(&pev->tevs);
> + pev->ntevs = 0;
> + clear_perf_probe_event(pev);
> }
> }
>
> --
> 2.52.0.rc2.455.g230fcf2819-goog
>
Powered by blists - more mailing lists