Commit 76c2f13c authored by Steven Rostedt (Red Hat)'s avatar Steven Rostedt (Red Hat) Committed by Steven Rostedt

ftrace/x86: Have static tracing also use ftrace_caller_setup

Linus pointed out that there were locations that did the hard coded
update of the parent and rip parameters. One of them was the static tracer
which could also use the ftrace_caller_setup to do that work. In fact,
because it did not use it, it is prone to bugs, and since the static
tracer is hardly ever used (who wants function tracing code always being
called?) it doesn't get tested very often. I only run a few "does it still
work" tests on it. But I do not run stress tests on that code. Although,
since it is never turned off, just having it on should be stressful enough.
(especially for the performance folks)

There's no reason that the static tracer can't also use ftrace_caller_setup.
Have it do so.

Link: http://lkml.kernel.org/r/CA+55aFwF+qCGSKdGaEgW4p6N65GZ5_XTV=1NbtWDvxnd5yYLiw@mail.gmail.com
Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1411262304010.3961@nanosReviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 62a207d7
...@@ -21,12 +21,6 @@ ...@@ -21,12 +21,6 @@
# define function_hook mcount # define function_hook mcount
#endif #endif
#ifdef CONFIG_DYNAMIC_FTRACE
ENTRY(function_hook)
retq
END(function_hook)
/* skip is set if stack has been adjusted */ /* skip is set if stack has been adjusted */
.macro ftrace_caller_setup trace_label skip=0 .macro ftrace_caller_setup trace_label skip=0
MCOUNT_SAVE_FRAME \skip MCOUNT_SAVE_FRAME \skip
...@@ -47,6 +41,12 @@ GLOBAL(\trace_label) ...@@ -47,6 +41,12 @@ GLOBAL(\trace_label)
#endif #endif
.endm .endm
#ifdef CONFIG_DYNAMIC_FTRACE
ENTRY(function_hook)
retq
END(function_hook)
#ifdef CONFIG_FRAME_POINTER #ifdef CONFIG_FRAME_POINTER
/* /*
* Stack traces will stop at the ftrace trampoline if the frame pointer * Stack traces will stop at the ftrace trampoline if the frame pointer
...@@ -207,15 +207,7 @@ GLOBAL(ftrace_stub) ...@@ -207,15 +207,7 @@ GLOBAL(ftrace_stub)
retq retq
trace: trace:
MCOUNT_SAVE_FRAME ftrace_caller_setup ftrace_caller_op_ptr
movq RIP(%rsp), %rdi
#ifdef CC_USING_FENTRY
movq SS+16(%rsp), %rsi
#else
movq 8(%rbp), %rsi
#endif
subq $MCOUNT_INSN_SIZE, %rdi
call *ftrace_trace_function call *ftrace_trace_function
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment