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

From: Andy Lutomirski
Date: Wed Jul 12 2017 - 19:22:58 EST

On Wed, Jul 12, 2017 at 3:30 PM, Andi Kleen <andi@xxxxxxxxxxxxxx> 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.

If someone wanted to write an in-kernel DWARF parser that hooked into
the same machinery that Josh is using and comes with a complete formal
verification package, I might not object, with the caveat that it's
likely to be *much* slower than ORC. By complete formal verification,
I mean that a user tool running the exact same code, compiled with
strong sanitization, should decode the tables for every single kernel
IP and confirm that (a) the output is sane, (b) the output matches
what objtool says it should do and (c) doesn't crash.

I'm not sure I see the point, though. I also think that Linus would
object, since I asked him quite recently and he said he'd object.