Re: [PATCH] ftrace/x86: Fix missing ops arg on static function tracing

From: Namhyung Kim
Date: Mon Nov 16 2015 - 18:44:47 EST


Hi Steve,

On Mon, Nov 16, 2015 at 10:54:53AM -0500, Steven Rostedt wrote:
> On Sat, 14 Nov 2015 18:32:28 +0900
> Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> > The commit f1ab00af816e ("ftrace/x86: Get rid of ftrace_caller_setup")
> > moved code that loads ftrace_ops into 3rd parameter but it missed to do
> > for static tracing.
> >
> > Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> > ---
> > arch/x86/kernel/mcount_64.S | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
> > index 94ea120fa21f..6c1ccf9e5427 100644
> > --- a/arch/x86/kernel/mcount_64.S
> > +++ b/arch/x86/kernel/mcount_64.S
> > @@ -278,6 +278,9 @@ trace:
> > /* save_mcount_regs fills in first two parameters */
> > save_mcount_regs
> >
> > + /* Load the ftrace_ops into the 3rd parameter */
> > + movq function_trace_op(%rip), %rdx
> > +
> > call *ftrace_trace_function
>
> This isn't needed, nor will the parameter be used if added. A comment
> should probably be added here instead.
>
> /*
> * When DYNAMIC_FTRACE is not defined, ARCH_SUPPORTS_FTRACE_OPS is not
> * set (see include/asm/ftrace.h). Only the ip and parent ip are used
> * and the list function is called when function tracing is enabled.
> */

Ah, ok.

I sent this patch during reading update_ftrace_function(). I was
wondering why function_trace_op is set but not passed to the trace
function. It seems that the ops is not needed for x86 but s390 still
needs it regardless of DYNAMIC_FTRACE.

I'll send a patch with the above comment.

Thanks,
Namhyung

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/