Commit f93a7d0c authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt (Google)
Browse files

ftrace: Allow tracing of some of the tracing code

There is times when tracing the tracing infrastructure can be useful for
debugging the tracing code. Currently all files in the tracing directory
are set to "notrace" the functions.

Add a new config option FUNCTION_SELF_TRACING that will allow some of the
files in the tracing infrastructure to be traced. It requires a config to
enable because it will add noise to the function tracer if events and
other tracing features are enabled. Tracing functions and events together
is quite common, so not tracing the event code should be the default.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Tom Zanussi <zanussi@kernel.org>
Link: https://patch.msgid.link/20251120181514.736f2d5f@gandalf.local.home


Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
parent 400ddf1d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -330,6 +330,20 @@ config DYNAMIC_FTRACE_WITH_ARGS
	depends on DYNAMIC_FTRACE
	depends on HAVE_DYNAMIC_FTRACE_WITH_ARGS

config FUNCTION_SELF_TRACING
	bool "Function trace tracing code"
	depends on FUNCTION_TRACER
	help
	  Normally all the tracing code is set to notrace, where the function
	  tracer will ignore all the tracing functions. Sometimes it is useful
	  for debugging to trace some of the tracing infratructure itself.
	  Enable this to allow some of the tracing infrastructure to be traced
	  by the function tracer. Note, this will likely add noise to function
	  tracing if events and other tracing features are enabled along with
	  function tracing.

	  If unsure, say N.

config FPROBE
	bool "Kernel Function Probe (fprobe)"
	depends on HAVE_FUNCTION_GRAPH_FREGS && HAVE_FTRACE_GRAPH_FUNC
+17 −0
Original line number Diff line number Diff line
@@ -16,6 +16,23 @@ obj-y += trace_selftest_dynamic.o
endif
endif

# Allow some files to be function traced
ifdef CONFIG_FUNCTION_SELF_TRACING
CFLAGS_trace_output.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_seq.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_stat.o = $(CC_FLAGS_FTRACE)
CFLAGS_tracing_map.o = $(CC_FLAGS_FTRACE)
CFLAGS_synth_event_gen_test.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_events.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_syscalls.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_events_filter.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_events_trigger.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_events_synth.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_events_hist.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_events_user.o = $(CC_FLAGS_FTRACE)
CFLAGS_trace_dynevent.o = $(CC_FLAGS_FTRACE)
endif

ifdef CONFIG_FTRACE_STARTUP_TEST
CFLAGS_trace_kprobe_selftest.o = $(CC_FLAGS_FTRACE)
obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe_selftest.o