Skip to content

Commit f93a7d0

Browse files
committed
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: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent 400ddf1 commit f93a7d0

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

kernel/trace/Kconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,20 @@ config DYNAMIC_FTRACE_WITH_ARGS
330330
depends on DYNAMIC_FTRACE
331331
depends on HAVE_DYNAMIC_FTRACE_WITH_ARGS
332332

333+
config FUNCTION_SELF_TRACING
334+
bool "Function trace tracing code"
335+
depends on FUNCTION_TRACER
336+
help
337+
Normally all the tracing code is set to notrace, where the function
338+
tracer will ignore all the tracing functions. Sometimes it is useful
339+
for debugging to trace some of the tracing infratructure itself.
340+
Enable this to allow some of the tracing infrastructure to be traced
341+
by the function tracer. Note, this will likely add noise to function
342+
tracing if events and other tracing features are enabled along with
343+
function tracing.
344+
345+
If unsure, say N.
346+
333347
config FPROBE
334348
bool "Kernel Function Probe (fprobe)"
335349
depends on HAVE_FUNCTION_GRAPH_FREGS && HAVE_FTRACE_GRAPH_FUNC

kernel/trace/Makefile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,23 @@ obj-y += trace_selftest_dynamic.o
1616
endif
1717
endif
1818

19+
# Allow some files to be function traced
20+
ifdef CONFIG_FUNCTION_SELF_TRACING
21+
CFLAGS_trace_output.o = $(CC_FLAGS_FTRACE)
22+
CFLAGS_trace_seq.o = $(CC_FLAGS_FTRACE)
23+
CFLAGS_trace_stat.o = $(CC_FLAGS_FTRACE)
24+
CFLAGS_tracing_map.o = $(CC_FLAGS_FTRACE)
25+
CFLAGS_synth_event_gen_test.o = $(CC_FLAGS_FTRACE)
26+
CFLAGS_trace_events.o = $(CC_FLAGS_FTRACE)
27+
CFLAGS_trace_syscalls.o = $(CC_FLAGS_FTRACE)
28+
CFLAGS_trace_events_filter.o = $(CC_FLAGS_FTRACE)
29+
CFLAGS_trace_events_trigger.o = $(CC_FLAGS_FTRACE)
30+
CFLAGS_trace_events_synth.o = $(CC_FLAGS_FTRACE)
31+
CFLAGS_trace_events_hist.o = $(CC_FLAGS_FTRACE)
32+
CFLAGS_trace_events_user.o = $(CC_FLAGS_FTRACE)
33+
CFLAGS_trace_dynevent.o = $(CC_FLAGS_FTRACE)
34+
endif
35+
1936
ifdef CONFIG_FTRACE_STARTUP_TEST
2037
CFLAGS_trace_kprobe_selftest.o = $(CC_FLAGS_FTRACE)
2138
obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe_selftest.o

0 commit comments

Comments
 (0)