forked from Minki/linux
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@nanos Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
62a207d748
commit
76c2f13c55
@ -21,12 +21,6 @@
|
||||
# define function_hook mcount
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
|
||||
ENTRY(function_hook)
|
||||
retq
|
||||
END(function_hook)
|
||||
|
||||
/* skip is set if stack has been adjusted */
|
||||
.macro ftrace_caller_setup trace_label skip=0
|
||||
MCOUNT_SAVE_FRAME \skip
|
||||
@ -47,6 +41,12 @@ GLOBAL(\trace_label)
|
||||
#endif
|
||||
.endm
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
|
||||
ENTRY(function_hook)
|
||||
retq
|
||||
END(function_hook)
|
||||
|
||||
#ifdef CONFIG_FRAME_POINTER
|
||||
/*
|
||||
* Stack traces will stop at the ftrace trampoline if the frame pointer
|
||||
@ -207,15 +207,7 @@ GLOBAL(ftrace_stub)
|
||||
retq
|
||||
|
||||
trace:
|
||||
MCOUNT_SAVE_FRAME
|
||||
|
||||
movq RIP(%rsp), %rdi
|
||||
#ifdef CC_USING_FENTRY
|
||||
movq SS+16(%rsp), %rsi
|
||||
#else
|
||||
movq 8(%rbp), %rsi
|
||||
#endif
|
||||
subq $MCOUNT_INSN_SIZE, %rdi
|
||||
ftrace_caller_setup ftrace_caller_op_ptr
|
||||
|
||||
call *ftrace_trace_function
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user