[PATCH 0/6] perf: Add support for memory region/range reporting

From: Thomas Falcon

Date: Thu Jul 09 2026 - 18:20:40 EST


Add support for two memory-related reporting features in the perf tool:

1. Memory region reporting in perf-c2c and perf-script subcommands.
2. Memory range data in perf.data file header and perf-c2c subcommand.

Memory region reporting was introduced as part of support for the
Off-module Response facility (OMR) [1], which provides a new data
source encoding supporting "up to 8 fine-grained memory regions in
addition to the cache region, offering more detailed insights into
memory access regions."

Memory Range support was introduced with the addition of the ACPI Memory
Range and Region Mapping (MRRM) [2] table. It provides a base address plus
a length value for each memory range, as well as NUMA node and local and
remote "region ID's" so that "platform firmware can indicate the type of
memory for each range."[3]

Include a change allowing PERF_MEM_LVLNUM_L0 to be printed in
perf-mem output as well.

[1]: https://lore.kernel.org/all/20260114011750.350569-1-dapeng1.mi@xxxxxxxxxxxxxxx/
[2]: https://lore.kernel.org/lkml/20250505173819.419271-1-tony.luck@xxxxxxxxx/
[3]: MRRM definition allow for future expansion for the OS to assign
these region IDs.

Dapeng Mi (3):
perf mem: Add support for printing PERF_MEM_LVLNUM_L0
perf tools: Show memory region in perf-c2c subcommand
perf tools: Show memory region in perf-script subcommand

Thomas Falcon (3):
perf mem: Fix size tracking for mem_lvl's in
perf_script__meminfo_scnprintf()
perf header: Support memory ranges
perf c2c: print memory region data with stdio output

tools/perf/Documentation/perf-record.txt | 2 +-
.../Documentation/perf.data-file-format.txt | 13 ++
tools/perf/builtin-c2c.c | 86 +++++++-
tools/perf/builtin-inject.c | 1 +
tools/perf/builtin-script.c | 8 +-
tools/perf/util/bpf-filter.l | 1 +
tools/perf/util/env.c | 1 +
tools/perf/util/env.h | 12 ++
tools/perf/util/header.c | 187 ++++++++++++++++++
tools/perf/util/header.h | 1 +
tools/perf/util/mem-events.c | 75 ++++++-
tools/perf/util/mem-events.h | 1 +
.../scripting-engines/trace-event-python.c | 4 +-
13 files changed, 382 insertions(+), 10 deletions(-)

--
2.43.0