Re: [RFC PATCH 0/3] arm64: Implement reliable stack trace
From: Mark Rutland <mark.rutland@arm.com>
Date: 2020-10-16 11:14:39
Also in:
linux-arm-kernel, lkml
From: Mark Rutland <mark.rutland@arm.com>
Date: 2020-10-16 11:14:39
Also in:
linux-arm-kernel, lkml
Hi Josh, On Thu, Oct 15, 2020 at 04:29:31PM -0500, Josh Poimboeuf wrote:
quoted
quoted
AFAICT, existing architectures don't always handle all of the above in arch_stack_walk_reliable(). For example, it looks like x86 assumes unwiding through exceptions is reliable for !CONFIG_FRAME_POINTER, but I think this might not always be true.Why not?
Mark B's reply dropped this, but the next paragraph covered that: | I was planning to send a mail once I've finished writing a test, but | IIUC there are some windows where ftrace/kretprobes | detection/repainting may not work, e.g. if preempted after | ftrace_return_to_handler() decrements curr_ret_stack, but before the | arch trampoline asm restores the original return addr. So we might | need something like an in_return_trampoline() to detect and report | that reliably. ... so e.g. for a callchain A->B->C, where C is instrumented there are windows where B might be missing from the trace, but the trace is reported as reliable. I'll start a new thread on this (with a more fleshed-out example), with the full set of livepatch folk, lkml, etc. I just want to write a test case first, since it's entirely possible something I've missed is catching this already. Thanks, Mark.