Re: [PATCH v3 00/10] x86: ORC unwinder (previously undwarf)

From: Ingo Molnar
Date: Thu Jul 13 2017 - 05:29:33 EST

* Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:

> On Wed, Jul 12, 2017 at 03:30:31PM -0700, Andi Kleen wrote:
> > Josh Poimboeuf <jpoimboe@xxxxxxxxxx> writes:
> > >
> > > The ORC data format does have a few downsides compared to DWARF. The
> > > ORC unwind tables take up ~1MB more memory than DWARF eh_frame tables.
> > >
> > Can we have an option to just use dwarf instead? For people
> > who don't want to waste a MB+ to solve a problem that doesn't
> > exist (as proven by many years of opensuse kernel experience)
> >
> > As far as I can tell this whole thing has only downsides compared
> > to the dwarf unwinder that was earlier proposed. I don't see
> > a single advantage.
> Improved speed, reliability, maintainability. Are those not advantages?

Exactly, and all these advantages of the ORC debuginfo over DWARF debuginfo are
enabled by an unwinding optimized data format that the kernel project generates,
controls and is able to trust inherently.

DWARF generated by external tooling can just never reach that level of trust,
without insane amounts of formal verification.

Even if ORC was _slower_ its reliability would be reason enough to merge. The fact
that it's 20-40 times faster than the DWARF unwinder is really just icing on the

BTW., as a side note, (and I hope my optimism isn't premature), I believe the ORC
unwinder is a prime example of where Linus's stubborness resisting poor concepts
paid off in the long run: had we merged the DWARF unwinder years ago we'd never
have gained the ORC unwinder. We quite literally had to wait over a decade, but
good things happened in the end.