ftrace: Consolidate arch dependent functions with 'list' function
authorSteven Rostedt <srostedt@redhat.com>
Tue, 5 Jun 2012 13:44:25 +0000 (09:44 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 19 Jul 2012 17:18:22 +0000 (13:18 -0400)
commitccf3672d530170c98c734dfc5db07d64bcbad2ad
tree0cbe9a0856429412b9e026baf77cec9e117c6896
parent2f5f6ad9390c1ebbf738d130dbfe80b60eaa167e
ftrace: Consolidate arch dependent functions with 'list' function

As the function tracer starts to get more features, the support for
theses features will spread out throughout the different architectures
over time. These features boil down to what each arch does in the
mcount trampoline (the ftrace_caller).

Currently there's two features that are not the same throughout the
archs.

 1) Support to stop function tracing before the callback
 2) passing of the ftrace ops

Both of these require placing an indirect function to support the
features if the mcount trampoline does not.

On a side note, for all architectures, when more than one callback
is registered to the function tracer, an intermediate 'list' function
is called by the mcount trampoline to iterate through the callbacks
that are registered.

Instead of making a separate function for each of these features,
and requiring several indirect calls, just use the single 'list' function
as the intermediate, to handle all cases. If an arch does not support
the 'stop function tracing' or the passing of ftrace ops, just force
it to use the list function that will handle the features required.

This makes the code cleaner and simpler and removes a lot of
 #ifdefs in the code.

Link: http://lkml.kernel.org/r/20120612225424.495625483@goodmis.org
Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace.h
kernel/trace/ftrace.c