aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/Kconfig')
-rw-r--r--kernel/trace/Kconfig123
1 files changed, 108 insertions, 15 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index 34e707e5ab87..8a4d72931042 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -9,6 +9,9 @@ config USER_STACKTRACE_SUPPORT
9config NOP_TRACER 9config NOP_TRACER
10 bool 10 bool
11 11
12config HAVE_FTRACE_NMI_ENTER
13 bool
14
12config HAVE_FUNCTION_TRACER 15config HAVE_FUNCTION_TRACER
13 bool 16 bool
14 17
@@ -31,12 +34,20 @@ config HAVE_FTRACE_MCOUNT_RECORD
31config HAVE_HW_BRANCH_TRACER 34config HAVE_HW_BRANCH_TRACER
32 bool 35 bool
33 36
37config HAVE_FTRACE_SYSCALLS
38 bool
39
34config TRACER_MAX_TRACE 40config TRACER_MAX_TRACE
35 bool 41 bool
36 42
37config RING_BUFFER 43config RING_BUFFER
38 bool 44 bool
39 45
46config FTRACE_NMI_ENTER
47 bool
48 depends on HAVE_FTRACE_NMI_ENTER
49 default y
50
40config TRACING 51config TRACING
41 bool 52 bool
42 select DEBUG_FS 53 select DEBUG_FS
@@ -44,13 +55,29 @@ config TRACING
44 select STACKTRACE if STACKTRACE_SUPPORT 55 select STACKTRACE if STACKTRACE_SUPPORT
45 select TRACEPOINTS 56 select TRACEPOINTS
46 select NOP_TRACER 57 select NOP_TRACER
58 select BINARY_PRINTF
59
60#
61# Minimum requirements an architecture has to meet for us to
62# be able to offer generic tracing facilities:
63#
64config TRACING_SUPPORT
65 bool
66 # PPC32 has no irqflags tracing support, but it can use most of the
67 # tracers anyway, they were tested to build and work. Note that new
68 # exceptions to this list aren't welcomed, better implement the
69 # irqflags tracing for your architecture.
70 depends on TRACE_IRQFLAGS_SUPPORT || PPC32
71 depends on STACKTRACE_SUPPORT
72 default y
73
74if TRACING_SUPPORT
47 75
48menu "Tracers" 76menu "Tracers"
49 77
50config FUNCTION_TRACER 78config FUNCTION_TRACER
51 bool "Kernel Function Tracer" 79 bool "Kernel Function Tracer"
52 depends on HAVE_FUNCTION_TRACER 80 depends on HAVE_FUNCTION_TRACER
53 depends on DEBUG_KERNEL
54 select FRAME_POINTER 81 select FRAME_POINTER
55 select KALLSYMS 82 select KALLSYMS
56 select TRACING 83 select TRACING
@@ -83,7 +110,6 @@ config IRQSOFF_TRACER
83 default n 110 default n
84 depends on TRACE_IRQFLAGS_SUPPORT 111 depends on TRACE_IRQFLAGS_SUPPORT
85 depends on GENERIC_TIME 112 depends on GENERIC_TIME
86 depends on DEBUG_KERNEL
87 select TRACE_IRQFLAGS 113 select TRACE_IRQFLAGS
88 select TRACING 114 select TRACING
89 select TRACER_MAX_TRACE 115 select TRACER_MAX_TRACE
@@ -106,7 +132,6 @@ config PREEMPT_TRACER
106 default n 132 default n
107 depends on GENERIC_TIME 133 depends on GENERIC_TIME
108 depends on PREEMPT 134 depends on PREEMPT
109 depends on DEBUG_KERNEL
110 select TRACING 135 select TRACING
111 select TRACER_MAX_TRACE 136 select TRACER_MAX_TRACE
112 help 137 help
@@ -127,13 +152,13 @@ config SYSPROF_TRACER
127 bool "Sysprof Tracer" 152 bool "Sysprof Tracer"
128 depends on X86 153 depends on X86
129 select TRACING 154 select TRACING
155 select CONTEXT_SWITCH_TRACER
130 help 156 help
131 This tracer provides the trace needed by the 'Sysprof' userspace 157 This tracer provides the trace needed by the 'Sysprof' userspace
132 tool. 158 tool.
133 159
134config SCHED_TRACER 160config SCHED_TRACER
135 bool "Scheduling Latency Tracer" 161 bool "Scheduling Latency Tracer"
136 depends on DEBUG_KERNEL
137 select TRACING 162 select TRACING
138 select CONTEXT_SWITCH_TRACER 163 select CONTEXT_SWITCH_TRACER
139 select TRACER_MAX_TRACE 164 select TRACER_MAX_TRACE
@@ -143,16 +168,30 @@ config SCHED_TRACER
143 168
144config CONTEXT_SWITCH_TRACER 169config CONTEXT_SWITCH_TRACER
145 bool "Trace process context switches" 170 bool "Trace process context switches"
146 depends on DEBUG_KERNEL
147 select TRACING 171 select TRACING
148 select MARKERS 172 select MARKERS
149 help 173 help
150 This tracer gets called from the context switch and records 174 This tracer gets called from the context switch and records
151 all switching of tasks. 175 all switching of tasks.
152 176
177config EVENT_TRACER
178 bool "Trace various events in the kernel"
179 select TRACING
180 help
181 This tracer hooks to various trace points in the kernel
182 allowing the user to pick and choose which trace point they
183 want to trace.
184
185config FTRACE_SYSCALLS
186 bool "Trace syscalls"
187 depends on HAVE_FTRACE_SYSCALLS
188 select TRACING
189 select KALLSYMS
190 help
191 Basic tracer to catch the syscall entry and exit events.
192
153config BOOT_TRACER 193config BOOT_TRACER
154 bool "Trace boot initcalls" 194 bool "Trace boot initcalls"
155 depends on DEBUG_KERNEL
156 select TRACING 195 select TRACING
157 select CONTEXT_SWITCH_TRACER 196 select CONTEXT_SWITCH_TRACER
158 help 197 help
@@ -165,13 +204,11 @@ config BOOT_TRACER
165 representation of the delays during initcalls - but the raw 204 representation of the delays during initcalls - but the raw
166 /debug/tracing/trace text output is readable too. 205 /debug/tracing/trace text output is readable too.
167 206
168 ( Note that tracing self tests can't be enabled if this tracer is 207 You must pass in ftrace=initcall to the kernel command line
169 selected, because the self-tests are an initcall as well and that 208 to enable this on bootup.
170 would invalidate the boot trace. )
171 209
172config TRACE_BRANCH_PROFILING 210config TRACE_BRANCH_PROFILING
173 bool "Trace likely/unlikely profiler" 211 bool "Trace likely/unlikely profiler"
174 depends on DEBUG_KERNEL
175 select TRACING 212 select TRACING
176 help 213 help
177 This tracer profiles all the the likely and unlikely macros 214 This tracer profiles all the the likely and unlikely macros
@@ -224,7 +261,6 @@ config BRANCH_TRACER
224 261
225config POWER_TRACER 262config POWER_TRACER
226 bool "Trace power consumption behavior" 263 bool "Trace power consumption behavior"
227 depends on DEBUG_KERNEL
228 depends on X86 264 depends on X86
229 select TRACING 265 select TRACING
230 help 266 help
@@ -236,7 +272,6 @@ config POWER_TRACER
236config STACK_TRACER 272config STACK_TRACER
237 bool "Trace max stack" 273 bool "Trace max stack"
238 depends on HAVE_FUNCTION_TRACER 274 depends on HAVE_FUNCTION_TRACER
239 depends on DEBUG_KERNEL
240 select FUNCTION_TRACER 275 select FUNCTION_TRACER
241 select STACKTRACE 276 select STACKTRACE
242 select KALLSYMS 277 select KALLSYMS
@@ -266,11 +301,66 @@ config HW_BRANCH_TRACER
266 This tracer records all branches on the system in a circular 301 This tracer records all branches on the system in a circular
267 buffer giving access to the last N branches for each cpu. 302 buffer giving access to the last N branches for each cpu.
268 303
304config KMEMTRACE
305 bool "Trace SLAB allocations"
306 select TRACING
307 help
308 kmemtrace provides tracing for slab allocator functions, such as
309 kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected
310 data is then fed to the userspace application in order to analyse
311 allocation hotspots, internal fragmentation and so on, making it
312 possible to see how well an allocator performs, as well as debug
313 and profile kernel code.
314
315 This requires an userspace application to use. See
316 Documentation/vm/kmemtrace.txt for more information.
317
318 Saying Y will make the kernel somewhat larger and slower. However,
319 if you disable kmemtrace at run-time or boot-time, the performance
320 impact is minimal (depending on the arch the kernel is built for).
321
322 If unsure, say N.
323
324config WORKQUEUE_TRACER
325 bool "Trace workqueues"
326 select TRACING
327 help
328 The workqueue tracer provides some statistical informations
329 about each cpu workqueue thread such as the number of the
330 works inserted and executed since their creation. It can help
331 to evaluate the amount of work each of them have to perform.
332 For example it can help a developer to decide whether he should
333 choose a per cpu workqueue instead of a singlethreaded one.
334
335config BLK_DEV_IO_TRACE
336 bool "Support for tracing block io actions"
337 depends on SYSFS
338 depends on BLOCK
339 select RELAY
340 select DEBUG_FS
341 select TRACEPOINTS
342 select TRACING
343 select STACKTRACE
344 help
345 Say Y here if you want to be able to trace the block layer actions
346 on a given queue. Tracing allows you to see any traffic happening
347 on a block device queue. For more information (and the userspace
348 support tools needed), fetch the blktrace tools from:
349
350 git://git.kernel.dk/blktrace.git
351
352 Tracing also is possible using the ftrace interface, e.g.:
353
354 echo 1 > /sys/block/sda/sda1/trace/enable
355 echo blk > /sys/kernel/debug/tracing/current_tracer
356 cat /sys/kernel/debug/tracing/trace_pipe
357
358 If unsure, say N.
359
269config DYNAMIC_FTRACE 360config DYNAMIC_FTRACE
270 bool "enable/disable ftrace tracepoints dynamically" 361 bool "enable/disable ftrace tracepoints dynamically"
271 depends on FUNCTION_TRACER 362 depends on FUNCTION_TRACER
272 depends on HAVE_DYNAMIC_FTRACE 363 depends on HAVE_DYNAMIC_FTRACE
273 depends on DEBUG_KERNEL
274 default y 364 default y
275 help 365 help
276 This option will modify all the calls to ftrace dynamically 366 This option will modify all the calls to ftrace dynamically
@@ -296,7 +386,7 @@ config FTRACE_SELFTEST
296 386
297config FTRACE_STARTUP_TEST 387config FTRACE_STARTUP_TEST
298 bool "Perform a startup test on ftrace" 388 bool "Perform a startup test on ftrace"
299 depends on TRACING && DEBUG_KERNEL && !BOOT_TRACER 389 depends on TRACING
300 select FTRACE_SELFTEST 390 select FTRACE_SELFTEST
301 help 391 help
302 This option performs a series of startup tests on ftrace. On bootup 392 This option performs a series of startup tests on ftrace. On bootup
@@ -306,7 +396,7 @@ config FTRACE_STARTUP_TEST
306 396
307config MMIOTRACE 397config MMIOTRACE
308 bool "Memory mapped IO tracing" 398 bool "Memory mapped IO tracing"
309 depends on HAVE_MMIOTRACE_SUPPORT && DEBUG_KERNEL && PCI 399 depends on HAVE_MMIOTRACE_SUPPORT && PCI
310 select TRACING 400 select TRACING
311 help 401 help
312 Mmiotrace traces Memory Mapped I/O access and is meant for 402 Mmiotrace traces Memory Mapped I/O access and is meant for
@@ -328,3 +418,6 @@ config MMIOTRACE_TEST
328 Say N, unless you absolutely know what you are doing. 418 Say N, unless you absolutely know what you are doing.
329 419
330endmenu 420endmenu
421
422endif # TRACING_SUPPORT
423