[PATCH 0/3] perf jevents: Report the JSON keys that jevents.py never reads
From: TAKANO Mitsuhiro
Date: Tue Nov 10 2026 - 17:23:37 EST
jevents.py takes the fields it wants out of each JSON object by name and
ignores the rest, so a key spelled differently is dropped without a word
and the object is built without whatever that field held.
Patches 1 and 2 make the generator name what went wrong, and let the
model argument be omitted. Patch 3 adds a --check mode that reports the
keys jevents.py never asks for, along with a make target and a perf test
so that it runs without anyone having to remember it.
This is the second posting of the check. It went out alone in November
(https://lore.kernel.org/linux-perf-
users/20261110193239.1741014-1-takano32@xxxxxxxxx/) and the review found
two ways it could call a tree clean that no build can use: a MetricName
with a dash in it that loses its MetricExpr was invisible to both the
reader and the report, and a metric without an expression was skipped
rather than reported unless its key was spelled close enough to be a near
miss. Both are fixed here, and the failure-path changes the check needs
are no longer mixed into it.
The test runs the check over a fixture table rather than over the tree,
so it is green whatever the tables happen to look like, and it checks the
three exit statuses: 0 for a clean table, 1 for a reported key, 2 for a
table that does not parse.
The two misspellings the check reports in the tree today were posted
separately in November:
https://lore.kernel.org/linux-perf-users/20261108184600.3810059-1-takano32@xxxxxxxxx/
https://lore.kernel.org/linux-perf-users/20261108183846.3804875-1-takano32@xxxxxxxxx/
TAKANO Mitsuhiro (3):
perf jevents: Name the metric when a MetricExpr is missing
perf jevents: Make the model argument optional
perf jevents: Check the JSON keys that jevents.py never reads
tools/perf/Makefile | 14 +-
tools/perf/Makefile.perf | 1 +
tools/perf/pmu-events/jevents.py | 394 +++++++++++++++++++++---
tools/perf/tests/shell/jevents_check.sh | 68 ++++
4 files changed, 428 insertions(+), 49 deletions(-)
create mode 100755 tools/perf/tests/shell/jevents_check.sh
base-commit: 7475ea8b58616b33c04afb976cf0fbaad9dd63fb
--
2.53.0