Re: [PATCH 0/3] ftrace, orc, x86, tracing: Fix stack traces again

From: Nikolay Borisov
Date: Wed Jan 24 2018 - 04:00:02 EST




On 23.01.2018 20:32, Steven Rostedt wrote:
> With the new ORC unwinder, ftrace stack tracing became disfunctional.
>
> One was that ORC didn't know how to handle the ftrace callbacks in
> general (which Josh fixed). The other was that ORC would just bail
> if it hit a dynamically allocated trampoline. I added a check to
> the ORC unwinder to see if the trampoline belonged to ftrace, and
> if it did, use the orc entry of the static trampoline that was used
> to create the dynamic one (it would be identical).
>
> Finally, I noticed that the skip values of the stack tracing is out
> of whack. I went through and fixed them.
>
> Anyone have any issues with these patches? I'm starting my tests on
> them now and if all goes well, I plan on pushing them to Linus
> hopefully tonight.
>
> Thanks!

FWIW with this series ftrace with ORC now produces correct stacktraces
both for events and function tracing. Furthermore, with frame pointer
unwinder I don't see chopped off stack entries.

>
> -- Steve
>
>
> Josh Poimboeuf (1):
> x86/ftrace: Fix ORC unwinding from ftrace handlers
>
> Steven Rostedt (VMware) (2):
> ftrace, orc, x86: Handle ftrace dynamically allocated trampolines
> tracing: Update stack trace skipping for ORC unwinder
>
> ----
> arch/x86/kernel/Makefile | 5 +++-
> arch/x86/kernel/ftrace_64.S | 24 +++++++++++-------
> arch/x86/kernel/unwind_orc.c | 48 +++++++++++++++++++++++++++++++++++-
> include/linux/ftrace.h | 2 ++
> kernel/trace/ftrace.c | 26 +++++++++++---------
> kernel/trace/trace.c | 34 ++++++++++++++-----------
> kernel/trace/trace_events_trigger.c | 13 ++++++++--
> kernel/trace/trace_functions.c | 49 +++++++++++++++++++++++++++----------
> 8 files changed, 150 insertions(+), 51 deletions(-)
>