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 | [email protected] | 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

Reply via email to