lkml.org 
[lkml]   [2017]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: Ftrace: Static function graph not work
ping

2017-03-23 11:28 GMT+08:00 Zong Li <zongbox@gmail.com>:
> Hi all,
>
> I test the static function graph for ARM, x86 and x86_64 architecture
> on linux-3.10 and linux-4.9, and I find it works correctly only for
> x86_64 on linux-4.9.
>
> After the following commit, the function tracer also be registered
> when registering the function graph tracer.
>
> commit 2940c25bec92f40a3f7f32504b8ea115d1701892
> Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
> CommitDate: Wed Dec 4 10:57:05 2013 -0800
>
> ftrace: Fix function graph with loading of modules
>
>
> The arch-depend code implement the mcount function pseudo code like:
>
> void mcount(void)
> {
> ...
> if (ftrace_trace_function != ftrace_stub)
> goto do_trace;
>
> #ifdef CONFIG_FUNCTION_GRAPH_TRACER
> if (ftrace_graph_return != ftrace_stub ||
> ftrace_graph_entry != ftrace_graph_entry_stub)
> ftrace_graph_caller();
> #endif
> return;
>
> do_trace:
> ...
> }
>
> The function pointer 'ftrace_trace_function' will not be 'ftrace_stub'
> because function tracer is registered too, so the function graph part
> will not be executed.
>
>
> On the other hand, I find the another patch to resolve this situation,
> and it is reason that x86_64 architecture can work correctly.
>
> commit 62a207d748dd9224140a634786b274fdb6ece0b9
> Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
> CommitDate: Mon Nov 24 15:02:25 2014 -0500
>
> ftrace/x86: Have static function tracing always test for function graph
>
>
> so, is this problem tending to handle by each architecture? or maybe
> it is need to solve by generic code?
>
>
> This is my first mail to mailing list, please excuse having mistake
> and let me know.
> Thank a lot !

\
 
 \ /
  Last update: 2017-03-31 08:21    [W:0.051 / U:0.132 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site