blob: 5a9cffb0fafb0d3c69b3af2c695b11ac92affc5d [file] [log] [blame]
Arnaldo Carvalho de Melo16444a82008-05-12 21:20:42 +02001#
2# Architectures that offer an FTRACE implementation should select HAVE_FTRACE:
3#
4config HAVE_FTRACE
5 bool
Steven Rostedtbc0c38d2008-05-12 21:20:42 +02006
Steven Rostedt677aa9f2008-05-17 00:01:36 -04007config HAVE_DYNAMIC_FTRACE
8 bool
9
Steven Rostedt8da38212008-08-14 15:45:07 -040010config HAVE_FTRACE_MCOUNT_RECORD
11 bool
12
Steven Rostedt352ad252008-05-12 21:20:42 +020013config TRACER_MAX_TRACE
14 bool
15
Steven Rostedtbc0c38d2008-05-12 21:20:42 +020016config TRACING
17 bool
18 select DEBUG_FS
Ingo Molnar86387f72008-05-12 21:20:51 +020019 select STACKTRACE
Ingo Molnar5f87f112008-07-23 14:15:22 +020020 select TRACEPOINTS
Steven Rostedtbc0c38d2008-05-12 21:20:42 +020021
Steven Rostedt1b29b012008-05-12 21:20:42 +020022config FTRACE
23 bool "Kernel Function Tracer"
Ingo Molnar694379e2008-05-12 21:20:54 +020024 depends on HAVE_FTRACE
Steven Rostedt1b29b012008-05-12 21:20:42 +020025 select FRAME_POINTER
26 select TRACING
Steven Rostedt35e8e302008-05-12 21:20:42 +020027 select CONTEXT_SWITCH_TRACER
Steven Rostedt1b29b012008-05-12 21:20:42 +020028 help
29 Enable the kernel to trace every kernel function. This is done
30 by using a compiler feature to insert a small, 5-byte No-Operation
31 instruction to the beginning of every kernel function, which NOP
32 sequence is then dynamically patched into a tracer call when
33 tracing is enabled by the administrator. If it's runtime disabled
34 (the bootup default), then the overhead of the instructions is very
35 small and not measurable even in micro-benchmarks.
Steven Rostedt35e8e302008-05-12 21:20:42 +020036
Steven Rostedt81d68a92008-05-12 21:20:42 +020037config IRQSOFF_TRACER
38 bool "Interrupts-off Latency Tracer"
39 default n
40 depends on TRACE_IRQFLAGS_SUPPORT
41 depends on GENERIC_TIME
Ingo Molnarc1d23272008-05-12 21:20:55 +020042 depends on HAVE_FTRACE
Steven Rostedt81d68a92008-05-12 21:20:42 +020043 select TRACE_IRQFLAGS
44 select TRACING
45 select TRACER_MAX_TRACE
46 help
47 This option measures the time spent in irqs-off critical
48 sections, with microsecond accuracy.
49
50 The default measurement method is a maximum search, which is
51 disabled by default and can be runtime (re-)started
52 via:
53
54 echo 0 > /debugfs/tracing/tracing_max_latency
55
Steven Rostedt6cd8a4b2008-05-12 21:20:42 +020056 (Note that kernel size and overhead increases with this option
57 enabled. This option and the preempt-off timing option can be
58 used together or separately.)
59
60config PREEMPT_TRACER
61 bool "Preemption-off Latency Tracer"
62 default n
63 depends on GENERIC_TIME
64 depends on PREEMPT
Ingo Molnarc1d23272008-05-12 21:20:55 +020065 depends on HAVE_FTRACE
Steven Rostedt6cd8a4b2008-05-12 21:20:42 +020066 select TRACING
67 select TRACER_MAX_TRACE
68 help
69 This option measures the time spent in preemption off critical
70 sections, with microsecond accuracy.
71
72 The default measurement method is a maximum search, which is
73 disabled by default and can be runtime (re-)started
74 via:
75
76 echo 0 > /debugfs/tracing/tracing_max_latency
77
78 (Note that kernel size and overhead increases with this option
79 enabled. This option and the irqs-off timing option can be
80 used together or separately.)
81
Ingo Molnarf06c3812008-05-12 21:20:47 +020082config SYSPROF_TRACER
83 bool "Sysprof Tracer"
Thomas Gleixner4d2df792008-05-24 15:00:46 +020084 depends on X86
Ingo Molnarf06c3812008-05-12 21:20:47 +020085 select TRACING
86 help
87 This tracer provides the trace needed by the 'Sysprof' userspace
88 tool.
89
Steven Rostedt352ad252008-05-12 21:20:42 +020090config SCHED_TRACER
91 bool "Scheduling Latency Tracer"
Ingo Molnarc1d23272008-05-12 21:20:55 +020092 depends on HAVE_FTRACE
Steven Rostedt352ad252008-05-12 21:20:42 +020093 select TRACING
94 select CONTEXT_SWITCH_TRACER
95 select TRACER_MAX_TRACE
96 help
97 This tracer tracks the latency of the highest priority task
98 to be scheduled in, starting from the point it has woken up.
99
Steven Rostedt35e8e302008-05-12 21:20:42 +0200100config CONTEXT_SWITCH_TRACER
101 bool "Trace process context switches"
Ingo Molnarc1d23272008-05-12 21:20:55 +0200102 depends on HAVE_FTRACE
Steven Rostedt35e8e302008-05-12 21:20:42 +0200103 select TRACING
104 select MARKERS
105 help
106 This tracer gets called from the context switch and records
107 all switching of tasks.
108
Steven Rostedte5a81b62008-08-27 23:31:01 -0400109config STACK_TRACER
110 bool "Trace max stack"
111 depends on HAVE_FTRACE
Ingo Molnar2ff01c62008-09-04 15:04:37 +0200112 depends on DEBUG_KERNEL
Steven Rostedte5a81b62008-08-27 23:31:01 -0400113 select FTRACE
114 select STACKTRACE
115 help
116 This tracer records the max stack of the kernel, and displays
117 it in debugfs/tracing/stack_trace
118
Steven Rostedt3d083392008-05-12 21:20:42 +0200119config DYNAMIC_FTRACE
120 bool "enable/disable ftrace tracepoints dynamically"
121 depends on FTRACE
Steven Rostedt677aa9f2008-05-17 00:01:36 -0400122 depends on HAVE_DYNAMIC_FTRACE
Steven Rostedt3d083392008-05-12 21:20:42 +0200123 default y
124 help
125 This option will modify all the calls to ftrace dynamically
126 (will patch them out of the binary image and replaces them
127 with a No-Op instruction) as they are called. A table is
128 created to dynamically enable them again.
129
130 This way a CONFIG_FTRACE kernel is slightly larger, but otherwise
131 has native performance as long as no tracing is active.
132
133 The changes to the code are done by a kernel thread that
134 wakes up once a second and checks to see if any ftrace calls
135 were made. If so, it runs stop_machine (stops all CPUS)
136 and modifies the code to jump over the call to ftrace.
Steven Rostedt60a11772008-05-12 21:20:44 +0200137
Steven Rostedt8da38212008-08-14 15:45:07 -0400138config FTRACE_MCOUNT_RECORD
139 def_bool y
140 depends on DYNAMIC_FTRACE
141 depends on HAVE_FTRACE_MCOUNT_RECORD
142
Steven Rostedt60a11772008-05-12 21:20:44 +0200143config FTRACE_SELFTEST
144 bool
145
146config FTRACE_STARTUP_TEST
147 bool "Perform a startup test on ftrace"
148 depends on TRACING
149 select FTRACE_SELFTEST
150 help
151 This option performs a series of startup tests on ftrace. On bootup
152 a series of tests are made to verify that the tracer is
153 functioning properly. It will do tests on all the configured
154 tracers of ftrace.