Re: [RFC PATCH v8 3/4] arm64: Introduce stack trace reliability checks in the unwinder

From: Madhavan T. Venkataraman
Date: Thu Aug 26 2021 - 19:31:32 EST




On 8/26/21 10:57 AM, Mark Brown wrote:
> On Thu, Aug 12, 2021 at 02:06:02PM -0500, madvenka@xxxxxxxxxxxxxxxxxxx wrote:
>
>> + 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