On 23.01.2018 01:16, Steven Rostedt wrote: > On Mon, 22 Jan 2018 15:50:04 +0200 > Nikolay Borisov <nbori...@suse.com> wrote: > > >> diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c >> index 27f7ad12c4b1..b721f1f3f3c0 100644 >> --- a/kernel/trace/trace_functions.c >> +++ b/kernel/trace/trace_functions.c >> @@ -181,14 +181,11 @@ function_stack_trace_call(unsigned long ip, unsigned >> long parent_ip, >> pc = preempt_count(); >> trace_function(tr, ip, parent_ip, flags, pc); >> /* >> - * skip over 5 funcs: >> - * __ftrace_trace_stack, >> - * __trace_stack, >> + * skip over 2 funcs: >> * function_stack_trace_call >> - * ftrace_list_func > > Thanks, but this breaks when you are not using ORC unwinder.
Actually I've tested this with the frame_pointer unwinder, I haven't got ORC to work at all. So this patch fixes the issue where the FP unwinder prints out shorter stacktraces than required. > >> * ftrace_call >> */ >> - __trace_stack(tr, flags, 5, pc); >> + __trace_stack(tr, flags, 2, pc); >> } >> >> atomic_dec(&data->disabled); > > > There's a bit of ORC unwinder breakage that I'm still dealing with. I > also have patches to handle the differences between ORC and FP, in the > __trace_stack() usages. I'm hoping to have this all fixed by tomorrow, > as I'll be traveling after that. Great, please CC me on the patches so that I can test them. > > Thanks! > > -- Steve > >