Re: [PATCH v2] tracing: Fix selftest config check for function graph start up test

From: Jiri Olsa
Date: Thu Oct 21 2021 - 14:10:37 EST


On Thu, Oct 21, 2021 at 01:43:57PM -0400, Steven Rostedt wrote:
> From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
>
> There's a new test in trace_selftest_startup_function_graph() that
> requires the use of ftrace args being supported as well does some tricks
> with dynamic tracing. Although this code checks HAVE_DYNAMIC_FTRACE_WITH_ARGS
> it fails to check DYNAMIC_FTRACE, and the kernel fails to build due to
> that dependency.
>
> Also only define the prototype of trace_direct_tramp() if it is used.
>
> Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> ---
> Changes since v1:
> https://lkml.kernel.org/r/20211021123729.23be20c4@xxxxxxxxxxxxxxxxxx
> - Hide trace_direct_tramp() when not used
>
> kernel/trace/trace_selftest.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
> index 3404a245417e..afd937a46496 100644
> --- a/kernel/trace/trace_selftest.c
> +++ b/kernel/trace/trace_selftest.c
> @@ -784,7 +784,11 @@ static struct fgraph_ops fgraph_ops __initdata = {
> .retfunc = &trace_graph_return,
> };
>
> +#if defined(CONFIG_DYNAMIC_FTRACE) && \
> + defined(CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS)
> +#define TEST_DIRECT_TRAMP
> noinline __noclone static void trace_direct_tramp(void) { }
> +#endif
>
> /*
> * Pretty much the same than for the function tracer from which the selftest
> @@ -845,7 +849,7 @@ trace_selftest_startup_function_graph(struct tracer *trace,
> goto out;
> }
>
> -#ifdef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS
> +#ifdef TEST_DIRECT_TRAMP
> tracing_reset_online_cpus(&tr->array_buffer);
> set_graph_array(tr);
>
> --
> 2.31.1
>