Re: [GIT PULL 0/7] perf/urgent callchain fixes
From: Ingo Molnar
Date: Wed May 24 2017 - 02:53:32 EST
* Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
> 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(-)
Thanks, I've applied the fixes from email with some minor tweaks to the
changelogs.
I also noticed that we now have a lot of warnings about out of sync headers:
Warning: include/uapi/linux/stat.h differs from kernel
Warning: arch/x86/include/asm/disabled-features.h differs from kernel
Warning: arch/x86/include/asm/required-features.h differs from kernel
Warning: arch/x86/include/asm/cpufeatures.h differs from kernel
Warning: arch/x86/include/uapi/asm/kvm.h differs from kernel
Warning: arch/x86/include/uapi/asm/vmx.h differs from kernel
Warning: arch/powerpc/include/uapi/asm/kvm.h differs from kernel
Warning: arch/s390/include/uapi/asm/kvm.h differs from kernel
Warning: arch/arm/include/uapi/asm/kvm.h differs from kernel
Warning: arch/arm64/include/uapi/asm/kvm.h differs from kernel
... will post a separate patch for that.
Thanks,
Ingo