[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAP-5=fWciArAOkiJDhahxvL3S0zWCNHVEK2msPNT58W9otDOqQ@mail.gmail.com>
Date: Tue, 27 May 2025 14:52:42 -0700
From: Ian Rogers <irogers@...gle.com>
To: Arnaldo Carvalho de Melo <acme@...nel.org>
Cc: Namhyung Kim <namhyung@...nel.org>, Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>, Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>,
Adrian Hunter <adrian.hunter@...el.com>, Kan Liang <kan.liang@...ux.intel.com>,
James Clark <james.clark@...aro.org>, linux-perf-users@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] perf pmu: Avoid segv for missing name/alias_name in wildcarding
On Tue, May 27, 2025 at 1:57 PM Arnaldo Carvalho de Melo
<acme@...nel.org> wrote:
>
> On Tue, May 27, 2025 at 01:33:35PM -0700, Ian Rogers wrote:
> > On Fri, Apr 4, 2025 at 11:07 AM Namhyung Kim <namhyung@...nel.org> wrote:
> > > On Wed, Apr 02, 2025 at 02:13:01PM -0700, Ian Rogers wrote:
> > > > The pmu name or alias_name fields may be NULL and should be skipped if
> > > > so. This is done in all loops of perf_pmu___name_match except the
> > > > final wildcard loop which was an oversight.
>
> > > > Fixes: c786468a3585 ("perf pmu: Rename name matching for no suffix or wildcard variants")
> > > > Signed-off-by: Ian Rogers <irogers@...gle.com>
>
> > > Acked-by: Namhyung Kim <namhyung@...nel.org>
>
> > Ping.
>
> ⬢ [acme@...lbx perf-tools-next]$ patch -p1 < ./20250402_irogers_perf_pmu_avoid_segv_for_missing_name_alias_name_in_wildcarding.mbx
> patching file tools/perf/util/pmu.c
> Hunk #1 FAILED at 2060.
> 1 out of 1 hunk FAILED -- saving rejects to file tools/perf/util/pmu.c.rej
> ⬢ [acme@...lbx perf-tools-next]$
>
> ⬢ [acme@...lbx perf-tools-next]$ cat tools/perf/util/pmu.c.rej
> --- tools/perf/util/pmu.c
> +++ tools/perf/util/pmu.c
> @@ -2060,7 +2060,9 @@ static bool perf_pmu___name_match(const struct perf_pmu *pmu, const char *to_mat
> }
> for (size_t i = 0; i < ARRAY_SIZE(names); i++) {
> const char *name = names[i];
> -
> +
> + if (!name)
> + continue;
> if (wildcard && perf_pmu__match_wildcard_uncore(name, to_match))
> return true;
> if (!wildcard && perf_pmu__match_ignoring_suffix_uncore(name, to_match))
> ⬢ [acme@...lbx perf-tools-next]$
>
> ⬢ [acme@...lbx perf-tools-next]$ git log --oneline -5 tools/perf/util/pmu.c
> 754baf426e099fbf perf pmu: Change aliases from list to hashmap
> 255f5b6d060be5a4 perf parse-events: Add "cpu" term to set the CPU an event is recorded on
> fa1332a8011eebe1 perf mem/c2c amd: Add ldlat support
> fc807b6bde6ad332 perf pmu-events: Add retirement latency to JSON events inside of perf
> 58b8b5d142a8bd5c perf cpumap: Increment reference count for online cpumap
> ⬢ [acme@...lbx perf-tools-next]$
>
> Can you please take a look?
Done.
https://lore.kernel.org/lkml/20250527215035.187992-1-irogers@google.com/
Not sure what put patch off given the small nature of the change.
Thanks,
Ian
> - Arnaldo
Powered by blists - more mailing lists