[RFC PATCH v2 0/4] arm64: Implement stack trace reliability checks
Mark Brown
broonie at kernel.org
Tue Apr 13 12:02:55 BST 2021
On Mon, Apr 12, 2021 at 02:55:35PM -0500, Madhavan T. Venkataraman wrote:
>
> OK. Just so I am clear on the whole picture, let me state my understanding so far.
> Correct me if I am wrong.
> 1. We are hoping that we can convert a significant number of SYM_CODE functions to
> SYM_FUNC functions by providing them with a proper FP prolog and epilog so that
> we can get objtool coverage for them. These don't need any blacklisting.
I wouldn't expect to be converting lots of SYM_CODE to SYM_FUNC. I'd
expect the overwhelming majority of SYM_CODE to be SYM_CODE because it's
required to be non standard due to some external interface - things like
the exception vectors, ftrace, and stuff around suspend/hibernate. A
quick grep seems to confirm this.
> 3. We are going to assume that the reliable unwinder is only for livepatch purposes
> and will only be invoked on a task that is not currently running. The task either
The reliable unwinder can also be invoked on itself.
> 4. So, the only functions that will need blacklisting are the remaining SYM_CODE functions
> that might give up the CPU voluntarily. At this point, I am not even sure how
> many of these will exist. One hopes that all of these would have ended up as
> SYM_FUNC functions in (1).
There's stuff like ret_from_fork there.
> I suggest we do (3) first. Then, review the assembly functions to do (1). Then, review the
> remaining ones to see which ones must be blacklisted, if any.
I'm not clear what the concrete steps you're planning to do first are
there - your 3 seems like a statement of assumptions. For flagging
functions I do think it'd be safer to default to assuming that all
SYM_CODE functions can't be unwound reliably rather than only explicitly
listing ones that cause problems.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20210413/6358baac/attachment-0001.sig>
More information about the linux-arm-kernel
mailing list