Re: [GIT PULL 00/15] perf/core inlining improvements
From: Ingo Molnar <mingo@kernel.org>
Date: 2017-10-25 17:10:54
Also in:
lkml
* Arnaldo Carvalho de Melo [off-list ref] wrote:
Hi Ingo,
Please consider pulling, this is Milian's v7 plus some fixes
acked by Namhyung after some discussion among the three of us, I
probably need to pick some more patches that are related to this area,
but lets make some progress and merge this kit,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 9b7c85473cc2fa6fc4a7f87636ff2b69742b82b7:
Merge tag 'perf-core-for-mingo-4.15-20171023' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-10-24 10:53:04 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.15-20171025
for you to fetch changes up to d8a88dd243a170a226aba33e7c53704db2f82aa6:
perf util: Enable handling of inlined frames by default (2017-10-25 10:50:47 -0300)
----------------------------------------------------------------
perf/core inline improvements:
From Milian's cover letter: (Milian Wolff)
This series of patches completely reworks the way inline frames are
handled. Instead of querying for the inline nodes on-demand in the
individual tools, we now create proper callchain nodes for inlined
frames. The advantages this approach brings are numerous:
- Less duplicated code in the individual browser
- Aggregated cost for inlined frames for the --children top-down list
- Various bug fixes that arose from querying for a srcline/symbol based on
the IP of a sample, which will always point to the last inlined frame
instead of the corresponding non-inlined frame
- Overall much better support for visualizing cost for heavily-inlined C++
code, which simply was confusing and unreliable before
- srcline honors the global setting as to whether full paths or basenames
should be shown
- Caches for inlined frames and srcline information, which allow us to
enable inline frame handling by default
Signed-off-by: Arnaldo Carvalho de Melo <redacted>
----------------------------------------------------------------
Milian Wolff (15):
perf report: Remove code to handle inline frames from browsers
perf callchain: Store srcline in callchain_cursor_node
perf callchain: Refactor inline_list to operate on symbols
perf callchain: Refactor inline_list to store srcline string directly
perf callchain: Create real callchain entries for inlined frames
perf report: Fall-back to function name comparison for -g srcline
perf callchain: Mark inlined frames in output by " (inlined)" suffix
perf script: Mark inlined frames and do not print DSO for them
perf callchain: Compare symbol name for inlined frames when matching
perf report: Compare symbol name for inlined frames when sorting
perf report: Properly handle branch count in match_chain()
perf report: Cache failed lookups of inlined frames
perf report: Cache srclines for callchain nodes
perf report: Use srcline from callchain for hist entries
perf util: Enable handling of inlined frames by default
tools/perf/Documentation/perf-report.txt | 3 +-
tools/perf/Documentation/perf-script.txt | 3 +-
tools/perf/ui/browsers/hists.c | 180 ++-------------------
tools/perf/ui/stdio/hist.c | 77 +--------
tools/perf/util/callchain.c | 174 +++++++++++---------
tools/perf/util/callchain.h | 6 +-
tools/perf/util/dso.c | 7 +
tools/perf/util/dso.h | 2 +
tools/perf/util/event.c | 1 +
tools/perf/util/evsel_fprintf.c | 37 +----
tools/perf/util/hist.c | 7 +-
tools/perf/util/machine.c | 65 +++++++-
tools/perf/util/sort.c | 6 +
tools/perf/util/sort.h | 1 -
tools/perf/util/srcline.c | 268 +++++++++++++++++++++++++------
tools/perf/util/srcline.h | 26 ++-
tools/perf/util/symbol.c | 1 +
tools/perf/util/symbol.h | 2 +
18 files changed, 443 insertions(+), 423 deletions(-)Pulled, thanks a lot Arnaldo! Ingo