[RFC PATCH v5 00/16] Perf stat metric grouping with hardware information

From: weilin . wang
Date: Fri Apr 12 2024 - 17:08:18 EST


From: Weilin Wang <weilin.wang@xxxxxxxxx>

Changes in v5:
- Update code about "TakenAlone" to use MSR value instead. Currently, MSR value
is used in string format. We are planning to improve this part (maybe use bitmap)
in future. [Ian]
- Update variable/JSON field names and comments for better readbility [Ian]
- Update metricgroup__build_event_string to also use get_too_event_str helper
function [Ian]

v4: https://lore.kernel.org/all/20240209031441.943012-1-weilin.wang@xxxxxxxxx/


Weilin Wang (16):
perf stat: Add new field in stat_config to enable hardware aware
grouping.
perf stat: Add basic functions for the hardware aware grouping
perf pmu-events: Add functions in jevent.py to parse counter and event
info for hardware aware grouping
find_bit: add _find_last_and_bit() to support finding the most
significant set bit
perf stat: Add functions to set counter bitmaps for hardware-grouping
method
perf stat: Add functions to get counter info
perf stat: Add functions to create new group and assign events into
groups
perf stat: Add build string function and topdown events handling in
hardware-grouping
perf stat: Add function to handle special events in hardware-grouping
perf stat: Add function to combine metrics for hardware-grouping
perf stat: Add partial support on MSR in hardware-grouping
perf stat: Handle NMI in hardware-grouping
perf stat: Code refactoring in hardware-grouping
perf stat: Add tool events support in hardware-grouping
perf stat: use tool event helper function in
metricgroup__build_event_string
perf stat: Add hardware-grouping cmd option to perf stat

tools/include/linux/find.h | 18 +
tools/lib/find_bit.c | 33 +
tools/perf/builtin-stat.c | 7 +
tools/perf/pmu-events/jevents.py | 208 ++++-
tools/perf/pmu-events/pmu-events.h | 38 +-
tools/perf/util/metricgroup.c | 1393 ++++++++++++++++++++++++----
tools/perf/util/metricgroup.h | 1 +
tools/perf/util/stat.h | 1 +
8 files changed, 1525 insertions(+), 174 deletions(-)

--
2.42.0