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