xref: /linux/kernel/trace/Kconfig (revision 35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1)
116444a8aSArnaldo Carvalho de Melo#
216444a8aSArnaldo Carvalho de Melo# Architectures that offer an FTRACE implementation should select HAVE_FTRACE:
316444a8aSArnaldo Carvalho de Melo#
416444a8aSArnaldo Carvalho de Meloconfig HAVE_FTRACE
516444a8aSArnaldo Carvalho de Melo	bool
6bc0c38d1SSteven Rostedt
7bc0c38d1SSteven Rostedtconfig TRACING
8bc0c38d1SSteven Rostedt	bool
9bc0c38d1SSteven Rostedt	select DEBUG_FS
10bc0c38d1SSteven Rostedt
111b29b018SSteven Rostedtconfig FTRACE
121b29b018SSteven Rostedt	bool "Kernel Function Tracer"
131b29b018SSteven Rostedt	depends on DEBUG_KERNEL && HAVE_FTRACE
141b29b018SSteven Rostedt	select FRAME_POINTER
151b29b018SSteven Rostedt	select TRACING
16*35e8e302SSteven Rostedt	select CONTEXT_SWITCH_TRACER
171b29b018SSteven Rostedt	help
181b29b018SSteven Rostedt	  Enable the kernel to trace every kernel function. This is done
191b29b018SSteven Rostedt	  by using a compiler feature to insert a small, 5-byte No-Operation
201b29b018SSteven Rostedt	  instruction to the beginning of every kernel function, which NOP
211b29b018SSteven Rostedt	  sequence is then dynamically patched into a tracer call when
221b29b018SSteven Rostedt	  tracing is enabled by the administrator. If it's runtime disabled
231b29b018SSteven Rostedt	  (the bootup default), then the overhead of the instructions is very
241b29b018SSteven Rostedt	  small and not measurable even in micro-benchmarks.
25*35e8e302SSteven Rostedt
26*35e8e302SSteven Rostedtconfig CONTEXT_SWITCH_TRACER
27*35e8e302SSteven Rostedt	bool "Trace process context switches"
28*35e8e302SSteven Rostedt	depends on DEBUG_KERNEL
29*35e8e302SSteven Rostedt	select TRACING
30*35e8e302SSteven Rostedt	select MARKERS
31*35e8e302SSteven Rostedt	help
32*35e8e302SSteven Rostedt	  This tracer gets called from the context switch and records
33*35e8e302SSteven Rostedt	  all switching of tasks.
34*35e8e302SSteven Rostedt
35