From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
James Clark <james.clark@linaro.org>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Clark Williams <williams@redhat.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH v3 08/19] perf evsel: Don't dump probe events to PERF_TEST_ATTR
Date: Thu, 15 Oct 2026 21:18:32 -0300 [thread overview]
Message-ID: <20261016001843.71978-9-acme@kernel.org> (raw)
In-Reply-To: <20261016001843.71978-1-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Events opened just to ask if they are supported, i.e. the ones in
is_event_supported() and is_libpfm_event_supported(), go through the
regular evsel__open() path and thus end up in the event files written to
$PERF_TEST_ATTR, with everything but type, config and disabled zeroed:
[event-0-38654705664-3]
fd=3
cpu=-1
pid=0
type=0
size=0
config=38654705664
sample_type=0
...
which 'perf test attr' then takes as one of the events that were asked
for, failing with:
expected cpu=0, got -1
expected size=176, got 0
expected sample_type=65927, got 0
expected freq=1, got 0
This started showing up when there is more than one core PMU, as
perf_pmus__supports_extended_type() probes one such event per core PMU,
but these records were always bogus: nothing asked for them.
Flag those evsels as support probes, keeping the name clear of the
kprobe/uprobe meaning probe already has in evsel, and leave them out of
the dump.
Reported-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/linux-perf-users/asWQvXRdqp_RK85c@google.com/
Assisted-by: LLM
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evsel.c | 6 +++++-
tools/perf/util/evsel.h | 1 +
tools/perf/util/pfm.c | 1 +
tools/perf/util/print-events.c | 1 +
4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index e61f309e93dccc7f..59318fef03cb17ff 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -3104,7 +3104,11 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus,
bpf_counter__install_pe(evsel, idx, fd);
- if (unlikely(test_attr__enabled())) {
+ /*
+ * Support probes aren't what was asked for, leave them
+ * out of the PERF_TEST_ATTR dump.
+ */
+ if (unlikely(test_attr__enabled() && !evsel->support_probe)) {
test_attr__open(&evsel->core.attr, pid, cpu,
fd, group_fd, evsel->open_flags);
}
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 174f3414fd3cfa0d..53f3641b66e18674 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -120,6 +120,7 @@ struct evsel {
u64 db_id;
bool uniquified_name;
bool supported;
+ bool support_probe; /* Opened just to check for support. */
bool needs_swap;
bool disabled;
bool no_aux_samples;
diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
index f80d6b0df47ae64d..ad9bc481da70604e 100644
--- a/tools/perf/util/pfm.c
+++ b/tools/perf/util/pfm.c
@@ -141,6 +141,7 @@ static bool is_libpfm_event_supported(const char *name, struct perf_cpu_map *cpu
return false;
evsel->is_libpfm_event = true;
+ evsel->support_probe = true;
ret = evsel__open(evsel, cpus, threads);
if (ret == -EACCES) {
diff --git a/tools/perf/util/print-events.c b/tools/perf/util/print-events.c
index 0242243681b6b6f9..77428d9e73c4f1b6 100644
--- a/tools/perf/util/print-events.c
+++ b/tools/perf/util/print-events.c
@@ -147,6 +147,7 @@ bool is_event_supported(u8 type, u64 config)
evsel = evsel__new(&attr);
if (evsel) {
+ evsel->support_probe = true;
ret = evsel__open(evsel, NULL, tmap) >= 0;
if (!ret) {
--
2.55.0
next prev parent reply other threads:[~2026-10-16 0:19 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-16 0:18 [PATCH v3 0/19] perf test attr: Report the failures again and cope with more than one core PMU Arnaldo Carvalho de Melo
2026-10-16 0:18 ` [PATCH v3 01/19] perf test attr: Fix record dwarf sample_type expectation Arnaldo Carvalho de Melo
2026-10-16 0:22 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 02/19] perf test attr: Allow tests to require a core PMU Arnaldo Carvalho de Melo
2026-10-16 0:26 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 03/19] perf test attr: Fix legacy event encodings in group tests Arnaldo Carvalho de Melo
2026-10-16 0:32 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 04/19] perf test attr: Fix default stat metrics expectations Arnaldo Carvalho de Melo
2026-10-16 0:21 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 05/19] perf test attr: Relax group checking for ungrouped expectations Arnaldo Carvalho de Melo
2026-10-16 0:23 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 06/19] perf evsel: Mark the event as supported when retrying an open Arnaldo Carvalho de Melo
2026-10-16 0:25 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 07/19] perf test attr: Ignore the core PMU type perf puts in 'config' Arnaldo Carvalho de Melo
2026-10-16 0:24 ` sashiko-bot
2026-10-16 0:18 ` Arnaldo Carvalho de Melo [this message]
2026-10-16 0:31 ` [PATCH v3 08/19] perf evsel: Don't dump probe events to PERF_TEST_ATTR sashiko-bot
2026-10-16 0:18 ` [PATCH v3 09/19] perf test attr: Introduce mask_bits(), generalizing hide_core_pmu_type() Arnaldo Carvalho de Melo
2026-10-16 0:23 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 10/19] perf test attr: Accept either sample id bit perf asks for Arnaldo Carvalho de Melo
2026-10-16 0:28 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 11/19] perf test attr: Ignore the dummy tracking event and the terms it carries Arnaldo Carvalho de Melo
2026-10-16 0:25 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 12/19] perf test attr: Leave out the events of the other core PMUs Arnaldo Carvalho de Melo
2026-10-16 0:24 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 13/19] perf test attr: Ignore the group read_format bit the PMU count can remove Arnaldo Carvalho de Melo
2026-10-16 0:24 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 14/19] perf test attr: State, spelled out in a line, why a test is skipped Arnaldo Carvalho de Melo
2026-10-16 0:24 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 15/19] perf tests: Introduce a 'needs_mlock' suite flag Arnaldo Carvalho de Melo
2026-10-16 0:27 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 16/19] perf tests: Mark the C tests mapping perf ring buffers Arnaldo Carvalho de Melo
2026-10-16 0:24 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 17/19] perf tests: Mark the shell tests not " Arnaldo Carvalho de Melo
2026-10-16 0:26 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 18/19] perf mutex: Add a robust, process-shared mutex initializer Arnaldo Carvalho de Melo
2026-10-16 0:28 ` sashiko-bot
2026-10-16 0:18 ` [PATCH v3 19/19] perf test: Take turns using the perf mlock budget in the mmaping tests Arnaldo Carvalho de Melo
2026-10-16 0:28 ` sashiko-bot
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=20261016001843.71978-9-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=tglx@linutronix.de \
--cc=williams@redhat.com \
/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.