Re: [RFC PATCH v8 3/4] arm64: Introduce stack trace reliability checks in the unwinder
From: Madhavan T. Venkataraman <hidden>
Date: 2021-08-26 23:31:31
Also in:
linux-arm-kernel, lkml
From: Madhavan T. Venkataraman <hidden>
Date: 2021-08-26 23:31:31
Also in:
linux-arm-kernel, lkml
On 8/26/21 10:57 AM, Mark Brown wrote:
On Thu, Aug 12, 2021 at 02:06:02PM -0500, madvenka@linux.microsoft.com wrote:quoted
+ if (frame->need_reliable && !unwind_is_reliable(frame)) { + /* Cannot unwind to the next frame reliably. */ + frame->failed = true; + return false; + }This means we only collect reliability information in the case where we're specifically doing a reliable stacktrace. For example when printing stack traces on the console it might be useful to print a ? or something if the frame is unreliable as a hint to the reader that the information might be misleading. Could we therefore change the flag here to a reliability one and our need_reliable check so that we always run unwind_is_reliable()? I'm not sure if we need to abandon the trace on first error when doing a reliable trace but I can see it's a bit safer so perhaps better to do so. If we don't abandon then we don't require the need_reliable check at all.
I think that the caller should be able to specify that the stack trace should be abandoned. Like Livepatch. So, we could always do the reliability check. But keep need_reliable. Thanks. Madhavan