Re: [RFC 1/1] orc: mark it as reliable

From: Josh Poimboeuf
Date: Wed Oct 04 2017 - 10:04:29 EST


On Wed, Oct 04, 2017 at 11:23:15AM +0200, Jiri Slaby wrote:
> We need a reliable stack unwinder for kernel live patching, but we do
> not want to enable frame pointers for performance reasons. So let ORC be
> a reliable stack unwinder on x86 as it performs nicely wrt reliability
> of traces.
>
> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
> Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> ---
>
> I am sending this as an RFC. Do you still consider ORC to be not-enough
> reliable?

Off the top of my head, at least the following is missing:

- save_stack_trace_reliable() assumes that kernel mode pt_regs on the
stack make the stack trace unreliable. This is an FP-specific
assumption which no longer applies for ORC.

- The ORC unwinder needs to set unwind_state.error if it doesn't reach
all the way to the end (user pt_regs).

--
Josh