Skip to contentSkip to conversation

tracing/kprobes: Do the notrace functions check without kprobes on ftrace

PATCH New Masami Hiramatsu 1 participant 1 message Jan 8, 2021 Tracing

lore
Share & tools
lore

Masami Hiramatsu

author maintainer
#0 lore raw

PATCH v2 1/1 tracing/kprobes: Do the notrace functions check without kprobes on ftrace

Enable the notrace function check on the architecture which doesn't support kprobes on ftrace but support dynamic 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_DYNAMIC_FTRACE=n, it can not check whether the target function is notrace or not.

---
Changes in v2:
- Depends on CONFIG_DYNAMIC_FTRACE instead of CONFIG_FUNCTION_TRACER

---
 kernel/trace/Kconfig        |    2 +-
 kernel/trace/trace_kprobe.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
kernel/trace/Kconfig +1 -1
index fe60f9d7a0e6..18da5e8e28fb 100644
@@ -540,7 +540,7 @@ config KPROBE_EVENTS
 config KPROBE_EVENTS_ON_NOTRACE
 	bool "Do NOT protect notrace function from kprobe events"
 	depends on KPROBE_EVENTS
-	depends on KPROBES_ON_FTRACE
+	depends on DYNAMIC_FTRACE
 	default n
 	help
 	  This is only for the developers who want to debug ftrace itself
kernel/trace/trace_kprobe.c +1 -1
index b29f92c51b1a..5fff39541b8a 100644
@@ -434,7 +434,7 @@ static int disable_trace_kprobe(struct trace_event_call *call,
 	return 0;
 }
 
-#if defined(CONFIG_KPROBES_ON_FTRACE) && \
+#if defined(CONFIG_DYNAMIC_FTRACE) && \
 	!defined(CONFIG_KPROBE_EVENTS_ON_NOTRACE)
 static bool __within_notrace_func(unsigned long addr)
 {