perf: Emit build-ids for processes and the kernel
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 27 May 2016 19:20:57 +0000 (15:20 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Jun 2016 15:48:39 +0000 (11:48 -0400)
commit43d7844dae423e483866b1baa1ab5b44775882aa
treee523bffd871781200225d9a91ef3014dcd58c0f8
parent8ce28881a9c27059ee6cfabd8308aa2cf6e2e936
perf: Emit build-ids for processes and the kernel

For the kernel and for every mmap and process, we output a build-id.
The mmaps cover both shared libraries and the actual names of symlinked
binaries.

For instance, ash shows up as a process named ash as well as an mmap for
the actual binary busybox:

$ perf buildid-list perf.data -Hv  2>&1 | sort
...
build id event received for /bin/ash: 4eda16d472bcb2b6f610ed21d7036c6599515594
build id event received for /bin/busybox: 4eda16d472bcb2b6f610ed21d7036c6599515594

FWIW, we might not *need* build-ids with perf.  Even with them, you'll
need the absolute latest perf (e.g. late May, 2016) to handle symfs and
build-ids correctly.  Regardless, spitting out build-ids is the way to
go.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tools/profile/perf/Makefile
tools/profile/perf/perf_core.c
tools/profile/perf/perf_format.h
tools/profile/perf/perfconv.c
tools/profile/perf/perfconv.h
tools/profile/perf/xlib.c
tools/profile/perf/xlib.h