From: Milian Wolff <milian.wolff@kdab.com>
To: acme@kernel.org
Cc: linux-perf-users@vger.kernel.org
Subject: Re: usability issues with inlining and backtraces
Date: Mon, 15 Aug 2016 13:44:51 +0200 [thread overview]
Message-ID: <2915251.99QXSDB1Jd@milian-kdab2> (raw)
In-Reply-To: <20160523141104.GG8897@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 2513 bytes --]
On Monday, May 23, 2016 11:11:04 AM CEST Arnaldo Carvalho de Melo wrote:
> Em Mon, May 23, 2016 at 11:10:00AM +0200, Milian Wolff escreveu:
> > Hey all,
> >
> > I've recently encountered some nasty issues with perf which should - I
> > hope - be possible to be fixed.
>
> I've quickly read this, all interesting, but I need some time to digest
> it fully, which I don't have right now, I'll get to it as soon as I can.
>
> The fact that other open source tools do it as you expect is a precious
> observation, as we can go look at how they solved problems.
I have now found something very interesting in the perf code base:
The addr2line implementation with HAVE_LIBBFD_SUPPORT is actually capable of
producing backtraces that include inliners, similar to what GDB can do. If I
add debug output to the bfd_find_inliner_info loop inside addr2line in
srcline.c, and force unwind_inlines to true, then I see e.g.:
~~~~~~~~~~
inline: 0 _ZNSt8__detail4_ModImLm2147483647ELm16807ELm0ELb1ELb1EE6__calcEm (/
usr/include/c++/6.1.1/bits/random.h:143)
inline: 1 _ZNSt8__detail5__modImLm2147483647ELm16807ELm0EEET_S1_ (/usr/
include/c++/6.1.1/bits/random.h:151)
inline: 2 _ZNSt26linear_congruential_engineImLm16807ELm0ELm2147483647EEclEv (/
usr/include/c++/6.1.1/bits/random.h:332)
inline: 3
_ZSt18generate_canonicalIdLm53ESt26linear_congruential_engineImLm16807ELm0ELm2147483647EEET_RT1_
(/usr/include/c++/6.1.1/bits/random.tcc:3332)
inline: 4
_ZNSt8__detail8_AdaptorISt26linear_congruential_engineImLm16807ELm0ELm2147483647EEdEclEv
(/usr/include/c++/6.1.1/bits/random.h:185)
inline: 5
_ZNSt25uniform_real_distributionIdEclISt26linear_congruential_engineImLm16807ELm0ELm2147483647EEEEdRT_RKNS0_10param_typeE
(/usr/include/c++/6.1.1/bits/random.h:1818)
inline: 6
_ZNSt25uniform_real_distributionIdEclISt26linear_congruential_engineImLm16807ELm0ELm2147483647EEEEdRT_
(/usr/include/c++/6.1.1/bits/random.h:1809)
inline: 7 main (/path/to/test.cpp:14)
~~~~~~~~~~
I would really like to see this information be included in the call graph
shown by perf, e.g. in the stdio/browser output of perf report, but also in
perf script etc. pp.
Can someone suggest a way to do that? These entries cannot be represented by a
normal instruction pointer address, so extending the existing callchains with
additional entries is not straight forward to do.
Thanks
--
Milian Wolff | milian.wolff@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt Experts
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5903 bytes --]
next prev parent reply other threads:[~2016-08-15 11:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-23 9:10 usability issues with inlining and backtraces Milian Wolff
2016-05-23 14:11 ` Arnaldo Carvalho de Melo
2016-08-15 11:44 ` Milian Wolff [this message]
2016-05-23 14:59 ` Andi Kleen
2016-05-23 15:18 ` Milian Wolff
2016-06-13 16:07 ` Milian Wolff
2016-08-15 9:32 ` Milian Wolff
2016-08-15 11:32 ` Milian Wolff
2016-08-15 17:13 ` Andi Kleen
2016-08-16 15:13 ` Namhyung Kim
2016-08-16 15:45 ` Milian Wolff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2915251.99QXSDB1Jd@milian-kdab2 \
--to=milian.wolff@kdab.com \
--cc=acme@kernel.org \
--cc=linux-perf-users@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).