[PATCH v1 0/5] perf: Default use of build IDs and improvements
From: Ian Rogers
Date: Thu Apr 24 2025 - 02:19:57 EST
Build ID mmap2 events have been available since Linux v5.12 and avoid
post-processing the perf.data file to inject build IDs for DSOs
referenced by samples. Enable these by default as discussed in:
https://lore.kernel.org/linux-perf-users/CAP-5=fXP7jN_QrGUcd55_QH5J-Y-FCaJ6=NaHVtyx0oyNh8_-Q@xxxxxxxxxxxxxx/
The dso_id is used to indentify a DSO that may change by being
overwritten. The inode generation isn't present in /proc/pid/maps and
so was already only optionally filled in. With build ID mmap events
the other major, minor and inode varialbes aren't filled in. Change
the dso_id implementation to make optional values explicit, rather
than injecting a dso_id we want to improve it during find operations,
add the buildid to the dso_id for sorting and so that matching fails
when build IDs vary between DSOs.
Other minor bits of build_id clean up.
Ian Rogers (5):
perf build-id: Reduce size of "size" variable
perf build-id: Truncate to avoid overflowing the build_id data
perf build-id: Change sprintf functions to snprintf
perf dso: Move build_id to dso_id
perf record: Make --buildid-mmap the default
tools/perf/builtin-buildid-cache.c | 12 +-
tools/perf/builtin-buildid-list.c | 6 +-
tools/perf/builtin-inject.c | 32 ++---
tools/perf/builtin-record.c | 35 ++++--
tools/perf/builtin-report.c | 11 +-
tools/perf/include/perf/perf_dlfilter.h | 2 +-
tools/perf/tests/symbols.c | 4 +-
tools/perf/util/build-id.c | 40 +++----
tools/perf/util/build-id.h | 8 +-
tools/perf/util/disasm.c | 2 +-
tools/perf/util/dso.c | 111 ++++++++++--------
tools/perf/util/dso.h | 75 ++++++------
tools/perf/util/dsos.c | 20 ++--
tools/perf/util/event.c | 2 +-
tools/perf/util/header.c | 2 +-
tools/perf/util/machine.c | 28 ++---
tools/perf/util/map.c | 15 ++-
tools/perf/util/map.h | 5 +-
tools/perf/util/probe-file.c | 4 +-
.../scripting-engines/trace-event-python.c | 7 +-
tools/perf/util/sort.c | 27 +++--
tools/perf/util/symbol.c | 2 +-
tools/perf/util/symbol_conf.h | 2 +-
tools/perf/util/synthetic-events.c | 42 ++++---
24 files changed, 271 insertions(+), 223 deletions(-)
--
2.49.0.805.g082f7c87e0-goog