[PATCH v8 19/22] tools/perf: Support event code for arch standard events
Ian Rogers
irogers at google.com
Wed Jul 1 10:44:29 PDT 2026
On Wed, Jul 1, 2026 at 1:48 AM Atish Patra <atish.patra at linux.dev> wrote:
>
> From: Atish Patra <atishp at rivosinc.com>
>
> RISC-V relies on the event encoding from the json file. That includes
> arch standard events. If event code is present, event is already updated
> with correct encoding. No need to update it again which results in losing
> the event encoding.
>
> Signed-off-by: Atish Patra <atishp at rivosinc.com>
Reviewed-by: Ian Rogers <irogers at google.com>
Thanks,
Ian
> ---
> tools/perf/pmu-events/arch/riscv/arch-standard.json | 10 ++++++++++
> tools/perf/pmu-events/jevents.py | 9 ++++++++-
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/pmu-events/arch/riscv/arch-standard.json b/tools/perf/pmu-events/arch/riscv/arch-standard.json
> new file mode 100644
> index 000000000000..96e21f088558
> --- /dev/null
> +++ b/tools/perf/pmu-events/arch/riscv/arch-standard.json
> @@ -0,0 +1,10 @@
> +[
> + {
> + "EventName": "cycles",
> + "BriefDescription": "cycle executed"
> + },
> + {
> + "EventName": "instructions",
> + "BriefDescription": "instruction retired"
> + }
> +]
> diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py
> index 3a1bcdcdc685..0cf9d26315b3 100755
> --- a/tools/perf/pmu-events/jevents.py
> +++ b/tools/perf/pmu-events/jevents.py
> @@ -413,7 +413,14 @@ class JsonEvent:
> self.long_desc = None
> if arch_std:
> if arch_std.lower() in _arch_std_events:
> - event = _arch_std_events[arch_std.lower()].event
> + # Inherit the arch-standard encoding only if this event defines no
> + # explicit encoding of its own. Events with explicit EventCode,
> + # ConfigCode, etc. may carry alternate encodings and appended modifiers
> + # that must survive.
> + if ('EventCode' not in jd and 'ExtSel' not in jd and
> + configcode is None and eventidcode is None and
> + legacy_hw_config is None and legacy_cache_config is None):
> + event = _arch_std_events[arch_std.lower()].event
> # Copy from the architecture standard event to self for undefined fields.
> for attr, value in _arch_std_events[arch_std.lower()].__dict__.items():
> if hasattr(self, attr) and not getattr(self, attr):
>
> --
> 2.53.0-Meta
>
More information about the linux-arm-kernel
mailing list