[PATCH 1/2] arm64: Fix static use of function graph

Steven Rostedt rostedt at goodmis.org
Wed Nov 1 09:43:10 PDT 2017


On Wed,  1 Nov 2017 14:33:43 +0000
Julien Thierry <julien.thierry at arm.com> wrote:

> Function graph does not work currently when CONFIG_DYNAMIC_TRACE is not
> set. This is because ftrace_function_trace is not always set to ftrace_stub
> when function_graph is in use.
> 
> Do not skip checking of graph tracer functions when ftrace_function_trace
> is set.
> 
> Signed-off-by: Julien Thierry <julien.thierry at arm.com>

My arm code is very rusty and I have no idea if this works or not, but
for what it's worth.

Acked-by: Steven Rostedt (VMware) <rostedt at goodmis.org>

-- Steve

> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will.deacon at arm.com>
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: AKASHI Takahiro <takahiro.akashi at linaro.org>
> ---
>  arch/arm64/kernel/entry-ftrace.S | 12 +++---------
>  1 file changed, 3 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/arm64/kernel/entry-ftrace.S b/arch/arm64/kernel/entry-ftrace.S
> index e1be42e..1175f58 100644
> --- a/arch/arm64/kernel/entry-ftrace.S
> +++ b/arch/arm64/kernel/entry-ftrace.S
> @@ -108,13 +108,8 @@ ENTRY(_mcount)
>  	mcount_get_lr	x1		//       function's lr (= parent's pc)
>  	blr	x2			//   (*ftrace_trace_function)(pc, lr);
> 
> -#ifndef CONFIG_FUNCTION_GRAPH_TRACER
> -skip_ftrace_call:			//   return;
> -	mcount_exit			// }
> -#else
> -	mcount_exit			//   return;
> -					// }
> -skip_ftrace_call:
> +skip_ftrace_call:			// }
> +#ifdef CONFIG_FUNCTION_GRAPH_TRACER
>  	ldr_l	x2, ftrace_graph_return
>  	cmp	x0, x2			//   if ((ftrace_graph_return
>  	b.ne	ftrace_graph_caller	//        != ftrace_stub)
> @@ -123,9 +118,8 @@ skip_ftrace_call:
>  	adr_l	x0, ftrace_graph_entry_stub //     != ftrace_graph_entry_stub))
>  	cmp	x0, x2
>  	b.ne	ftrace_graph_caller	//     ftrace_graph_caller();
> -
> -	mcount_exit
>  #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
> +	mcount_exit
>  ENDPROC(_mcount)
> 
>  #else /* CONFIG_DYNAMIC_FTRACE */
> --
> 1.9.1




More information about the linux-arm-kernel mailing list