tracing/ftrace: give an entry on the config for boot tracer
[safe/jmp/linux-2.6] / kernel / trace / Kconfig
1 #
2 # Architectures that offer an FTRACE implementation should select HAVE_FTRACE:
3 #
4
5 config NOP_TRACER
6         bool
7
8 config HAVE_FTRACE
9         bool
10         select NOP_TRACER
11
12 config HAVE_DYNAMIC_FTRACE
13         bool
14
15 config HAVE_FTRACE_MCOUNT_RECORD
16         bool
17
18 config TRACER_MAX_TRACE
19         bool
20
21 config TRACING
22         bool
23         select DEBUG_FS
24         select STACKTRACE
25         select TRACEPOINTS
26
27 config FTRACE
28         bool "Kernel Function Tracer"
29         depends on HAVE_FTRACE
30         depends on DEBUG_KERNEL
31         select FRAME_POINTER
32         select TRACING
33         select CONTEXT_SWITCH_TRACER
34         help
35           Enable the kernel to trace every kernel function. This is done
36           by using a compiler feature to insert a small, 5-byte No-Operation
37           instruction to the beginning of every kernel function, which NOP
38           sequence is then dynamically patched into a tracer call when
39           tracing is enabled by the administrator. If it's runtime disabled
40           (the bootup default), then the overhead of the instructions is very
41           small and not measurable even in micro-benchmarks.
42
43 config IRQSOFF_TRACER
44         bool "Interrupts-off Latency Tracer"
45         default n
46         depends on TRACE_IRQFLAGS_SUPPORT
47         depends on GENERIC_TIME
48         depends on HAVE_FTRACE
49         depends on DEBUG_KERNEL
50         select TRACE_IRQFLAGS
51         select TRACING
52         select TRACER_MAX_TRACE
53         help
54           This option measures the time spent in irqs-off critical
55           sections, with microsecond accuracy.
56
57           The default measurement method is a maximum search, which is
58           disabled by default and can be runtime (re-)started
59           via:
60
61               echo 0 > /debugfs/tracing/tracing_max_latency
62
63           (Note that kernel size and overhead increases with this option
64           enabled. This option and the preempt-off timing option can be
65           used together or separately.)
66
67 config PREEMPT_TRACER
68         bool "Preemption-off Latency Tracer"
69         default n
70         depends on GENERIC_TIME
71         depends on PREEMPT
72         depends on HAVE_FTRACE
73         depends on DEBUG_KERNEL
74         select TRACING
75         select TRACER_MAX_TRACE
76         help
77           This option measures the time spent in preemption off critical
78           sections, with microsecond accuracy.
79
80           The default measurement method is a maximum search, which is
81           disabled by default and can be runtime (re-)started
82           via:
83
84               echo 0 > /debugfs/tracing/tracing_max_latency
85
86           (Note that kernel size and overhead increases with this option
87           enabled. This option and the irqs-off timing option can be
88           used together or separately.)
89
90 config SYSPROF_TRACER
91         bool "Sysprof Tracer"
92         depends on X86
93         select TRACING
94         help
95           This tracer provides the trace needed by the 'Sysprof' userspace
96           tool.
97
98 config SCHED_TRACER
99         bool "Scheduling Latency Tracer"
100         depends on HAVE_FTRACE
101         depends on DEBUG_KERNEL
102         select TRACING
103         select CONTEXT_SWITCH_TRACER
104         select TRACER_MAX_TRACE
105         help
106           This tracer tracks the latency of the highest priority task
107           to be scheduled in, starting from the point it has woken up.
108
109 config CONTEXT_SWITCH_TRACER
110         bool "Trace process context switches"
111         depends on HAVE_FTRACE
112         depends on DEBUG_KERNEL
113         select TRACING
114         select MARKERS
115         help
116           This tracer gets called from the context switch and records
117           all switching of tasks.
118
119 config BOOT_TRACER
120         bool "Trace boot initcalls"
121         depends on HAVE_FTRACE
122         depends on DEBUG_KERNEL
123         select TRACING
124         help
125           This tracer helps developers to optimize boot times: it records
126           the timings of the initcalls. Its aim is to be parsed by the
127           /scripts/bootgraph.pl tool to produce pretty graphics about
128           boot inefficiencies, giving a visual representation of the
129           delays during initcalls.
130
131 config STACK_TRACER
132         bool "Trace max stack"
133         depends on HAVE_FTRACE
134         depends on DEBUG_KERNEL
135         select FTRACE
136         select STACKTRACE
137         help
138           This tracer records the max stack of the kernel, and displays
139           it in debugfs/tracing/stack_trace
140
141 config DYNAMIC_FTRACE
142         bool "enable/disable ftrace tracepoints dynamically"
143         depends on FTRACE
144         depends on HAVE_DYNAMIC_FTRACE
145         depends on DEBUG_KERNEL
146         default y
147         help
148          This option will modify all the calls to ftrace dynamically
149          (will patch them out of the binary image and replaces them
150          with a No-Op instruction) as they are called. A table is
151          created to dynamically enable them again.
152
153          This way a CONFIG_FTRACE kernel is slightly larger, but otherwise
154          has native performance as long as no tracing is active.
155
156          The changes to the code are done by a kernel thread that
157          wakes up once a second and checks to see if any ftrace calls
158          were made. If so, it runs stop_machine (stops all CPUS)
159          and modifies the code to jump over the call to ftrace.
160
161 config FTRACE_MCOUNT_RECORD
162         def_bool y
163         depends on DYNAMIC_FTRACE
164         depends on HAVE_FTRACE_MCOUNT_RECORD
165
166 config FTRACE_SELFTEST
167         bool
168
169 config FTRACE_STARTUP_TEST
170         bool "Perform a startup test on ftrace"
171         depends on TRACING
172         depends on DEBUG_KERNEL
173         select FTRACE_SELFTEST
174         help
175           This option performs a series of startup tests on ftrace. On bootup
176           a series of tests are made to verify that the tracer is
177           functioning properly. It will do tests on all the configured
178           tracers of ftrace.