ping
2017-03-23 11:28 GMT+08:00 Zong Li <zong...@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) <rost...@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) <rost...@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 !