On Fri, Jan 15, 2021 at 02:24:46PM +0000, Mark Brown wrote: > From: Mark Rutland <mark.rutl...@arm.com> > > Add documentation for reliable stacktrace. This is intended to describe > the semantics and to be an aid for implementing architecture support for > HAVE_RELIABLE_STACKTRACE. > > Unwinding is a subtle area, and architectures vary greatly in both > implementation and the set of concerns that affect them, so I've tried > to avoid making this too specific to any given architecture. I've used > examples from both x86_64 and arm64 to explain corner cases in more > detail, but I've tried to keep the descriptions sufficient for those who > are unfamiliar with the particular architecture. > > I've tried to give rationale for all the recommendations/requirements, > since that makes it easier to spot nearby issues, or when a check > happens to catch a few things at once. I believe what I have written is > sound, but as some of this was reverse-engineered I may have missed > things worth noting. > > I've made a few assumptions about preferred behaviour, notably: > > * If you can reliably unwind through exceptions, you should (as x86_64 > does). > > * It's fine to omit ftrace_return_to_handler and other return > trampolines so long as these are not subject to patching and the > original return address is reported. Most architectures do this for > ftrace_return_handler, but not other return trampolines. > > * For cases where link register unreliability could result in duplicate > entries in the trace or an inverted trace, I've assumed this should be > treated as unreliable. This specific case shouldn't matter to > livepatching, but I assume that that we want a reliable trace to have > the correct order. > > Signed-off-by: Mark Rutland <mark.rutl...@arm.com> > Cc: Jiri Kosina <ji...@kernel.org> > Cc: Joe Lawrence <joe.lawre...@redhat.com> > Cc: Jonathan Corbet <cor...@lwn.net> > Cc: Josh Poimboeuf <jpoim...@redhat.com> > Cc: Mark Brown <broo...@kernel.org> > Cc: Miroslav Benes <mbe...@suse.cz> > Cc: Petr Mladek <pmla...@suse.com> > Cc: linux-...@vgert.kernel.org > Cc: live-patch...@vger.kernel.org > [Updates following review -- broonie] > Signed-off-by: Mark Brown <broo...@kernel.org> > --- > > v3: > - Incorporated objtool section from Mark. > - Deleted confusing notes about using annotations.
Acked-by: Josh Poimboeuf <jpoim...@redhat.com> -- Josh