Re: [RFC PATCH 00/10] x86: undwarf unwinder

From: Josh Poimboeuf
Date: Thu Jun 01 2017 - 08:52:09 EST


On Thu, Jun 01, 2017 at 02:33:20PM +0200, Jiri Slaby wrote:
> On 06/01/2017, 02:17 PM, Peter Zijlstra wrote:
> > On Thu, Jun 01, 2017 at 06:58:20AM -0500, Josh Poimboeuf wrote:
> >>> Being able to generate more optimal code in the hottest code paths of the kernel
> >>> is the _real_, primary upstream kernel benefit of a different debuginfo method -
> >>> which has to be weighed against the pain of introducing a new unwinder. But this
> >>> submission does not talk about that aspect at all, which should be fixed I think.
> >>
> >> Actually I devoted an entire one-sentence paragraph to performance in
> >> the documentation:
> >>
> >> The simpler debuginfo format also enables the unwinder to be relatively
> >> fast, which is important for perf and lockdep.
> >>
> >> But I'll try to highlight that a little more.
> >
> > That's relative to a DWARF unwinder. It doesn't appear to be possible to
> > get anywhere near a frame-pointer unwinder due to having to do this
> > log(n) lookup for every single frame.
>
> This is ~ 20 times faster than my DWARF unwinder by a quick measurement
> (20000 calls to save_stack_trace via single vfs_write).

Wow! Thanks for quantifying that. Looks like the lookup is indeed the
bottleneck as expected.

--
Josh