linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] perf inject improvements
@ 2024-09-09 20:37 Ian Rogers
  2024-09-09 20:37 ` [PATCH v2 1/4] perf inject: Fix build ID injection Ian Rogers
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ian Rogers @ 2024-09-09 20:37 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Kan Liang, Colin Ian King, Casey Chen,
	Anne Macedo, Sun Haiyong, linux-perf-users, linux-kernel

Fix the existing build id injection by adding sample IDs on to the
synthesized events. This correctly orders the events and addresses
issues such as a profiled executable being replaced during its
execution.

Add a new --mmap2-buildid-all option that rewrites all mmap events as
mmap2 events containing build IDs. This removes the need for build_id
events.

Add a new -B option that like --mmap2-buildid-all synthesizes mmap2
with build id events. With -B the behavior is to do it lazily, so only
when a sample references the particular map. With system wide
profiling that synthesizes mmap events for all running processes the
perf.data file savings can be greater than 50%.

Reduce the memory footprint of perf inject by avoiding creating
symbols in the callchain, the symbols aren't used during perf inject
and necessitate the loading of dsos.

v2: Rename dso__inject* functions to tool__inject* addressing feedback
    from Arnaldo and a suggestion from Namhyung that the name should
    reflect the first argument's type. Rebase, in particular over the
    perf inject pipe mode fixes. Add Namhyung's acked-by.

Ian Rogers (4):
  perf inject: Fix build ID injection
  perf inject: Add new mmap2-buildid-all option
  perf inject: Lazy build-id mmap2 event insertion
  perf callchain: Allow symbols to be optional when resolving a
    callchain

 tools/perf/builtin-inject.c         | 304 +++++++++++++++++++++++-----
 tools/perf/tests/shell/pipe_test.sh |   2 +
 tools/perf/util/build-id.c          |   6 +-
 tools/perf/util/callchain.c         |   8 +-
 tools/perf/util/callchain.h         |   2 +-
 tools/perf/util/machine.c           |  92 +++++----
 tools/perf/util/machine.h           |  33 ++-
 tools/perf/util/map.c               |   1 +
 tools/perf/util/map.h               |  11 +
 tools/perf/util/synthetic-events.c  | 101 +++++++--
 tools/perf/util/synthetic-events.h  |  21 +-
 11 files changed, 468 insertions(+), 113 deletions(-)

-- 
2.46.0.598.g6f2099f65c-goog


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-09-10 14:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-09 20:37 [PATCH v2 0/4] perf inject improvements Ian Rogers
2024-09-09 20:37 ` [PATCH v2 1/4] perf inject: Fix build ID injection Ian Rogers
2024-09-09 20:37 ` [PATCH v2 2/4] perf inject: Add new mmap2-buildid-all option Ian Rogers
2024-09-09 20:37 ` [PATCH v2 3/4] perf inject: Lazy build-id mmap2 event insertion Ian Rogers
2024-09-09 20:37 ` [PATCH v2 4/4] perf callchain: Allow symbols to be optional when resolving a callchain Ian Rogers
2024-09-10 14:55 ` [PATCH v2 0/4] perf inject improvements Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).