Re: [PATCH 0/7] generate full callchain cursor entries for inlined frames

From: Milian Wolff
Date: Thu May 18 2017 - 16:05:43 EST


On Donnerstag, 18. Mai 2017 21:34:04 CEST Milian Wolff wrote:
> 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 unreliably before
> - srcline honors the global setting as to whether full paths or basenames
> should be shown
>
> For comparison, below lists the output before and after for `perf script`
> and `perf report`. The example file I used to generate the perf data is:

And of course shortly after sending this patch series I notice the first
issues ;-) The new behavior shows confusing results for `-g function` because
match_chain uses sym->start. I fixed this locally to compare the actual
function name if either of the two symbols is an inlined fake symbol:

https://github.com/milianw/linux/commit/
a1fa4486c19976f36d6ee7df263676e888c2bdb9

Before resending this whole series, it would be great if people could review
the stuff in here such that I know whether I'm on the right track.

You can checkout my clone from github for quick testing:

https://github.com/milianw/linux/commits/wip/distinguish-inliners

Thanks

--
Milian Wolff | milian.wolff@xxxxxxxx | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt Experts

Attachment: smime.p7s
Description: S/MIME cryptographic signature