From: Ian Rogers <irogers@google.com>
To: Atish Patra <atishp@rivosinc.com>,
linux-riscv@lists.infradead.org, beeman@rivosinc.com,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Kan Liang <kan.liang@linux.intel.com>,
James Clark <james.clark@linaro.org>,
Ze Gao <zegao2021@gmail.com>,
Weilin Wang <weilin.wang@intel.com>,
Ben Gainey <ben.gainey@arm.com>,
Dominique Martinet <asmadeus@codewreck.org>,
Junhao He <hejunhao3@huawei.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v1 0/4] Prefer sysfs/JSON events also when no PMU is provided
Date: Sat, 26 Oct 2024 05:17:54 -0700 [thread overview]
Message-ID: <20241026121758.143259-1-irogers@google.com> (raw)
At the RISC-V summit the topic of avoiding event data being in the
RISC-V PMU kernel driver came up. There is a preference for sysfs/JSON
events being the priority when no PMU is provided so that legacy
events maybe supported via json. Originally Mark Rutland also
expressed at LPC 2023 that doing this would resolve bugs on ARM Apple
M? processors, but James Clark more recently tested this and believes
the driver issues there may not have existed or have been resolved. In
any case, it is inconsistent that with a PMU event names avoid legacy
encodings, but when wildcarding PMUs (ie without a PMU with the event
name) the legacy encodings have priority.
The patch doing this work was reverted in a v6.10 release candidate
as, even though the patch was posted for weeks and had been on
linux-next for weeks without issue, Linus was in the habit of using
explicit legacy events with unsupported precision options on his
Neoverse-N1. This machine has SLC PMU events for bus and CPU cycles
where ARM decided to call the events bus_cycles and cycles, the latter
being also a legacy event name. ARM haven't renamed the cycles event
to a more consistent cpu_cycles and avoided the problem. With these
changes the problematic event will now be skipped, a large warning
produced, and perf record will continue for the other PMU events. This
solution was proposed by Arnaldo.
Two minor changes have been added to help with the error message and
to work around issues occurring with "perf stat metrics (shadow stat)
test".
The patches have only been tested on my x86 non-hybrid laptop.
Ian Rogers (4):
perf evsel: Add pmu_name helper
perf stat: Fix find_stat for mixed legacy/non-legacy events
perf record: Skip don't fail for events that don't open
perf parse-events: Reapply "Prefer sysfs/JSON hardware events over
legacy"
tools/perf/builtin-record.c | 22 +++++++---
tools/perf/util/evsel.c | 10 +++++
tools/perf/util/evsel.h | 1 +
tools/perf/util/parse-events.c | 26 +++++++++---
tools/perf/util/parse-events.l | 76 +++++++++++++++++-----------------
tools/perf/util/parse-events.y | 60 ++++++++++++++++++---------
tools/perf/util/pmus.c | 20 +++++++--
tools/perf/util/stat-shadow.c | 3 +-
8 files changed, 145 insertions(+), 73 deletions(-)
--
2.47.0.163.g1226f6d8fa-goog
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next reply other threads:[~2024-10-26 12:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-26 12:17 Ian Rogers [this message]
2024-10-26 12:17 ` [PATCH v1 1/4] perf evsel: Add pmu_name helper Ian Rogers
2024-10-26 12:17 ` [PATCH v1 2/4] perf stat: Fix find_stat for mixed legacy/non-legacy events Ian Rogers
2024-10-26 12:17 ` [PATCH v1 3/4] perf record: Skip don't fail for events that don't open Ian Rogers
2024-11-11 15:49 ` James Clark
2024-11-11 17:00 ` Ian Rogers
2024-11-12 14:12 ` James Clark
2024-11-12 16:25 ` Ian Rogers
2024-11-12 19:53 ` Leo Yan
2024-11-12 22:24 ` Ian Rogers
2024-11-13 10:00 ` James Clark
2024-10-26 12:17 ` [PATCH v1 4/4] perf parse-events: Reapply "Prefer sysfs/JSON hardware events over legacy" Ian Rogers
2024-11-07 18:51 ` [PATCH v1 0/4] Prefer sysfs/JSON events also when no PMU is provided Ian Rogers
2024-11-08 12:16 ` James Clark
2024-11-08 18:37 ` Atish Kumar Patra
2024-11-08 18:59 ` Ian Rogers
2024-11-08 22:06 ` Atish Kumar Patra
2024-11-11 10:45 ` James Clark
2024-11-11 17:19 ` Ian Rogers
2024-11-11 23:38 ` Atish Kumar Patra
2024-11-12 14:21 ` James Clark
2024-11-12 17:23 ` Ian Rogers
2024-11-12 19:55 ` Atish Kumar Patra
2024-11-11 23:23 ` Atish Kumar Patra
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=20241026121758.143259-1-irogers@google.com \
--to=irogers@google.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=asmadeus@codewreck.org \
--cc=atishp@rivosinc.com \
--cc=beeman@rivosinc.com \
--cc=ben.gainey@arm.com \
--cc=hejunhao3@huawei.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=weilin.wang@intel.com \
--cc=zegao2021@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox