[PATCH v3 0/5] NMI warning and debug improvements

From: Ian Rogers
Date: Wed Apr 02 2025 - 16:16:27 EST


The NMI warning wouldn't fire even if all the events were for one PMU
type. Remove a nearby, and no longer useful, mixed hardware event
group function. Improve the evlist to string function and dump it in
verbose mode after the reordered events warning.

As commonly happens legacy events like instructions will be uniquified
to hybrid events like cpu_core/instructions/, even though the
encodings differ. To make this correct either:
https://lore.kernel.org/lkml/20250312211623.2495798-1-irogers@xxxxxxxxxx/
or:
https://lore.kernel.org/linux-perf-users/20250109222109.567031-1-irogers@xxxxxxxxxx/
needs merging.

v3: Increase the verbose dump length from 1024 to 2048 as requested by
Kan Liang.

v2: Rename evlist__has_hybrid to evlist__has_hybrid_pmus and add a
max_length parameter to evlist__format_evsels as suggested by Kan
Liang.

Ian Rogers (5):
perf stat: Better hybrid support for the NMI watchdog warning
perf stat: Remove print_mixed_hw_group_error
perf evlist: Refactor evlist__scnprintf_evsels
perf evlist: Add groups to evlist__format_evsels
perf parse-events: Add debug dump of evlist if reordered

tools/perf/builtin-record.c | 9 ++++---
tools/perf/util/evlist.c | 34 ++++++++++++++++-------
tools/perf/util/evlist.h | 3 ++-
tools/perf/util/parse-events.c | 16 ++++++++---
tools/perf/util/stat-display.c | 49 +++++++++++-----------------------
tools/perf/util/stat.h | 1 -
6 files changed, 60 insertions(+), 52 deletions(-)

--
2.49.0.504.g3bcea36a83-goog