Re: [PATCH 1/2] arm64: Implement arch_stack_walk_reliable
Josh Poimboeuf <[email protected]>
| Newsgroups | org.kernel.vger.linux-toolchains,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.live-patching |
|---|---|
| Message-ID | <iajk7zuxy7fun7f7sv52ydhq7siqub3ec2lmguomdd3fhdw4s2@cwyfihj3gvpn> |
On Fri, Mar 07, 2025 at 05:27:41PM -0800, Song Liu wrote: > With proper exception boundary detection, it is possible to implment > arch_stack_walk_reliable without sframe. > > Note that, arch_stack_walk_reliable does not guarantee getting reliable > stack in all scenarios. Instead, it can reliably detect when the stack > trace is not reliable, which is enough to provide reliable livepatching. > > This version has been inspired by Weinan Liu's patch [1]. > > [1] https://lore.kernel.org/live-patching/[email protected]/ > Signed-off-by: Song Liu <[email protected]> This looks incomplete. The reliable unwinder needs to be extra paranoid. There are several already-checked-for errors in the unwinder that don't actually set the unreliable bit. There are likely other failure modes it should also be checking for. For example I don't see where it confirms that the unwind completed to the end of the stack (which is typically at a certain offset). See for example all the error conditions in the x86 version of arch_stack_walk_reliable() and in arch/x86/kernel/unwind_frame.c. -- Josh