xref: /linux/kernel/trace/Kconfig (revision 81d68a96a39844853b37f20cc8282d9b65b78ef3)
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
7352ad25aSSteven Rostedtconfig TRACER_MAX_TRACE
8352ad25aSSteven Rostedt	bool
9352ad25aSSteven Rostedt
10bc0c38d1SSteven Rostedtconfig TRACING
11bc0c38d1SSteven Rostedt	bool
12bc0c38d1SSteven Rostedt	select DEBUG_FS
13bc0c38d1SSteven Rostedt
141b29b018SSteven Rostedtconfig FTRACE
151b29b018SSteven Rostedt	bool "Kernel Function Tracer"
161b29b018SSteven Rostedt	depends on DEBUG_KERNEL && HAVE_FTRACE
171b29b018SSteven Rostedt	select FRAME_POINTER
181b29b018SSteven Rostedt	select TRACING
1935e8e302SSteven Rostedt	select CONTEXT_SWITCH_TRACER
201b29b018SSteven Rostedt	help
211b29b018SSteven Rostedt	  Enable the kernel to trace every kernel function. This is done
221b29b018SSteven Rostedt	  by using a compiler feature to insert a small, 5-byte No-Operation
231b29b018SSteven Rostedt	  instruction to the beginning of every kernel function, which NOP
241b29b018SSteven Rostedt	  sequence is then dynamically patched into a tracer call when
251b29b018SSteven Rostedt	  tracing is enabled by the administrator. If it's runtime disabled
261b29b018SSteven Rostedt	  (the bootup default), then the overhead of the instructions is very
271b29b018SSteven Rostedt	  small and not measurable even in micro-benchmarks.
2835e8e302SSteven Rostedt
29*81d68a96SSteven Rostedtconfig IRQSOFF_TRACER
30*81d68a96SSteven Rostedt	bool "Interrupts-off Latency Tracer"
31*81d68a96SSteven Rostedt	default n
32*81d68a96SSteven Rostedt	depends on TRACE_IRQFLAGS_SUPPORT
33*81d68a96SSteven Rostedt	depends on GENERIC_TIME
34*81d68a96SSteven Rostedt	select TRACE_IRQFLAGS
35*81d68a96SSteven Rostedt	select TRACING
36*81d68a96SSteven Rostedt	select TRACER_MAX_TRACE
37*81d68a96SSteven Rostedt	help
38*81d68a96SSteven Rostedt	  This option measures the time spent in irqs-off critical
39*81d68a96SSteven Rostedt	  sections, with microsecond accuracy.
40*81d68a96SSteven Rostedt
41*81d68a96SSteven Rostedt	  The default measurement method is a maximum search, which is
42*81d68a96SSteven Rostedt	  disabled by default and can be runtime (re-)started
43*81d68a96SSteven Rostedt	  via:
44*81d68a96SSteven Rostedt
45*81d68a96SSteven Rostedt	      echo 0 > /debugfs/tracing/tracing_max_latency
46*81d68a96SSteven Rostedt
47352ad25aSSteven Rostedtconfig SCHED_TRACER
48352ad25aSSteven Rostedt	bool "Scheduling Latency Tracer"
49352ad25aSSteven Rostedt	depends on DEBUG_KERNEL
50352ad25aSSteven Rostedt	select TRACING
51352ad25aSSteven Rostedt	select CONTEXT_SWITCH_TRACER
52352ad25aSSteven Rostedt	select TRACER_MAX_TRACE
53352ad25aSSteven Rostedt	help
54352ad25aSSteven Rostedt	  This tracer tracks the latency of the highest priority task
55352ad25aSSteven Rostedt	  to be scheduled in, starting from the point it has woken up.
56352ad25aSSteven Rostedt
5735e8e302SSteven Rostedtconfig CONTEXT_SWITCH_TRACER
5835e8e302SSteven Rostedt	bool "Trace process context switches"
5935e8e302SSteven Rostedt	depends on DEBUG_KERNEL
6035e8e302SSteven Rostedt	select TRACING
6135e8e302SSteven Rostedt	select MARKERS
6235e8e302SSteven Rostedt	help
6335e8e302SSteven Rostedt	  This tracer gets called from the context switch and records
6435e8e302SSteven Rostedt	  all switching of tasks.
6535e8e302SSteven Rostedt
66