* [PATCH v2] perf pmu: Avoid segv for missing name/alias_name in wildcarding
@ 2025-05-27 21:50 Ian Rogers
2025-05-28 12:44 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 2+ messages in thread
From: Ian Rogers @ 2025-05-27 21:50 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
Ian Rogers, Adrian Hunter, Kan Liang, James Clark,
linux-perf-users, linux-kernel
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@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
---
v2. Rebase resolving merge conflicts, add Namhyung's Acked-by.
---
tools/perf/util/pmu.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index bc1178234d3b..609828513f6c 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -2143,6 +2143,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))
--
2.49.0.1204.g71687c7c1d-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v2] perf pmu: Avoid segv for missing name/alias_name in wildcarding
2025-05-27 21:50 [PATCH v2] perf pmu: Avoid segv for missing name/alias_name in wildcarding Ian Rogers
@ 2025-05-28 12:44 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2025-05-28 12:44 UTC (permalink / raw)
To: Ian Rogers
Cc: Peter Zijlstra, Ingo Molnar, Namhyung Kim, Mark Rutland,
Alexander Shishkin, Jiri Olsa, Adrian Hunter, Kan Liang,
James Clark, linux-perf-users, linux-kernel
On Tue, May 27, 2025 at 02:50:35PM -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")
I fixed the Fixes: to the right commit, as it seems to have been rebased
and ended up not present on my local repo:
Fixes: 63e287131cf0c59b ("perf pmu: Rename name matching for no suffix or wildcard variants")
⬢ [acme@toolbx perf-tools-next]$ git tag --contains 63e287131cf0c59b | grep ^v6
v6.15
v6.15-rc1
v6.15-rc2
v6.15-rc3
v6.15-rc4
v6.15-rc5
v6.15-rc6
v6.15-rc7
⬢ [acme@toolbx perf-tools-next]$
Or something else:
⬢ [acme@toolbx perf-tools-next]$ git tag --contains 86468a358 | grep ^v6
error: malformed object name 86468a358
⬢ [acme@toolbx perf-tools-next]$ git cat-file -t c786468a3585
fatal: Not a valid object name c786468a3585
⬢ [acme@toolbx perf-tools-next]$
further details:
commit 63e287131cf0c59b026053d6d63fe271604ffa7e
Author: Ian Rogers <irogers@google.com>
Date: Fri Jan 31 23:43:18 2025 -0800
perf pmu: Rename name matching for no suffix or wildcard variants
Wildcard PMU naming will match a name like pmu_1 to a PMU name like
pmu_10 but not to a PMU name like pmu_2 as the suffix forms part of
the match. No suffix matching will match pmu_10 to either pmu_1 or
pmu_2. Add or rename matching functions on PMU to make it clearer what
kind of matching is being performed.
Signed-off-by: Ian Rogers <irogers@google.com>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Link: https://lore.kernel.org/r/20250201074320.746259-4-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Thanks, applied.
- Arnaldo
> Signed-off-by: Ian Rogers <irogers@google.com>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
> ---
> v2. Rebase resolving merge conflicts, add Namhyung's Acked-by.
> ---
> tools/perf/util/pmu.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index bc1178234d3b..609828513f6c 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -2143,6 +2143,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))
> --
> 2.49.0.1204.g71687c7c1d-goog
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-05-28 12:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 21:50 [PATCH v2] perf pmu: Avoid segv for missing name/alias_name in wildcarding Ian Rogers
2025-05-28 12:44 ` Arnaldo Carvalho de Melo
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.