[GIT PULL 0/7] perf/urgent callchain fixes

From: Namhyung Kim
Date: Wed May 24 2017 - 02:21:40 EST


Hi Ingo,

Please consider pulling the perf tooling changes below. Build tested
on Ubuntu, Fedora and Archlinux. I found a problem during `perf test`
but it seems unrelated to this series. Will take a look it later.

Thanks,
Namhyung


The following changes since commit 88b0193d9418c00340e45e0a913a0813bc6c8c96:

perf/callchain: Force USER_DS when invoking perf_callchain_user() (2017-05-10 07:54:00 +0200)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf tags/perf-urgent-for-mingo-4.12-20170524

for you to fetch changes up to 37d4e1b6ba56773cef96122dff4436c2c534c381:

perf tools: Fix to put caller above callee in children mode (2017-05-24 08:51:11 +0900)

----------------------------------------------------------------
perf/urgent fixes

Fixes:

- Fix segfault on `perf report -g srcline` if a callchain address
cannot find a map for some reason. The srcline sorting mode needs
a DSO to resolve line numbers and it's accessed via a map. But it
should check if map is available for the address first. (Milian Wolff)

- Fix off-by-one for srcline output. It passed (unwound) address to
resolve srcline for callchains. But it's a return address of the
function which points to a next instruction. This leads to
off-by-one for srcline info. So pass the "address - 1" instead to
get the correct srcline. This also considers "signal frame" as
well which has the exact address, so pass the address directly in
this case. (Milian Wolff)

- Fix missing inlined function. Current code missed to display
inlined functions at the end. This was found when comparing the
output of addr2line and perf script. (Milian Wolff)


User Visible:

- `perf script` also gained `--inline` option to show inlined
functions with callchains. This helped to find a bug in the
current inline code. (Namhyung Kim)

- Fix missed callchain ordering with `-g callee/caller` when libbfd
is not available. (Milian Wolff)

- Reorder output entries in `perf report --children` so that it can
put parent entries above their children. It worked like this but
missed when callchain display order was changed with `-g caller`.
Now default is `-g caller` if children mode enabled. (Namhyung Kim)


----------------------------------------------------------------

Milian Wolff (5):
perf report: don't crash on invalid maps in `-g srcline` mode
perf report: fix memory leak in addr2line when called by addr2inlines
perf report: fix off-by-one for non-activation frames
perf report: always honor callchain order for inlined nodes
perf report: do not drop last inlined frame

Namhyung Kim (2):
perf script: Add --inline option
perf tools: Fix to put caller above callee in children mode

tools/perf/Documentation/perf-script.txt | 4 +++
tools/perf/builtin-script.c | 2 ++
tools/perf/ui/hist.c | 2 ++
tools/perf/util/callchain.c | 13 ++++++---
tools/perf/util/evsel_fprintf.c | 33 +++++++++++++++++++++
tools/perf/util/srcline.c | 49 +++++++++++++++++---------------
tools/perf/util/unwind-libdw.c | 6 +++-
tools/perf/util/unwind-libunwind-local.c | 11 +++++++
8 files changed, 92 insertions(+), 28 deletions(-)