Re: [RFC PATCH] ftrace: Fix depth filtering when func_stack is enabled.

From: Nikolay Borisov
Date: Tue Jan 23 2018 - 01:58:24 EST




On 23.01.2018 01:16, Steven Rostedt wrote:
> On Mon, 22 Jan 2018 15:50:04 +0200
> Nikolay Borisov <nborisov@xxxxxxxx> 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
>
>