Re: [PATCH] tracing/kprobes: Do the notrace functions check without kprobes on ftrace

From: Masami Hiramatsu
Date: Thu Jan 07 2021 - 23:20:23 EST


On Thu, 7 Jan 2021 09:13:30 -0500
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Wed, 6 Jan 2021 12:20:40 +0900
> Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> > Enable the notrace function check on the architecture which doesn't
> > support kprobes on ftrace. This notrace function check is not only
> > for the kprobes on ftrace but also sw-breakpoint based kprobes.
> > Thus there is no reason to limit this check for the arch which
> > supports kprobes on ftrace.
> >
> > This also changes the dependency of Kconfig. Because kprobe event
> > uses the function tracer's address list for identifying notrace
> > function, if the CONFIG_FUNCTION_TRACER=n, it can not check whether
> > the target function is notrace or not.
> >
> > Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> > Acked-by: Naveen N. Rao <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
> > ---
>
> Fails to build with:
>
> kernel/trace/trace_kprobe.c: In function ‘__within_notrace_func’:
> kernel/trace/trace_kprobe.c:453:10: error: implicit declaration of function ‘ftrace_location_range’; did you mean ‘ftrace_location’? [-Werror=implicit-function-declaration]
> 453 | return !ftrace_location_range(addr, addr + size - 1);
> | ^~~~~~~~~~~~~~~~~~~~~
> | ftrace_location
>

Oops, it depends on CONFIG_DYNAMIC_FTRACE=y instead of CONFIG_FUNCTION_TRACER.

Thank you,

--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>