diff options
Diffstat (limited to 'kernel/trace/Kconfig')
-rw-r--r-- | kernel/trace/Kconfig | 72 |
1 files changed, 68 insertions, 4 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 34e707e5ab87..07877f4b5233 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -9,6 +9,9 @@ config USER_STACKTRACE_SUPPORT | |||
9 | config NOP_TRACER | 9 | config NOP_TRACER |
10 | bool | 10 | bool |
11 | 11 | ||
12 | config HAVE_FTRACE_NMI_ENTER | ||
13 | bool | ||
14 | |||
12 | config HAVE_FUNCTION_TRACER | 15 | config HAVE_FUNCTION_TRACER |
13 | bool | 16 | bool |
14 | 17 | ||
@@ -37,6 +40,11 @@ config TRACER_MAX_TRACE | |||
37 | config RING_BUFFER | 40 | config RING_BUFFER |
38 | bool | 41 | bool |
39 | 42 | ||
43 | config FTRACE_NMI_ENTER | ||
44 | bool | ||
45 | depends on HAVE_FTRACE_NMI_ENTER | ||
46 | default y | ||
47 | |||
40 | config TRACING | 48 | config TRACING |
41 | bool | 49 | bool |
42 | select DEBUG_FS | 50 | select DEBUG_FS |
@@ -127,6 +135,7 @@ config SYSPROF_TRACER | |||
127 | bool "Sysprof Tracer" | 135 | bool "Sysprof Tracer" |
128 | depends on X86 | 136 | depends on X86 |
129 | select TRACING | 137 | select TRACING |
138 | select CONTEXT_SWITCH_TRACER | ||
130 | help | 139 | help |
131 | This tracer provides the trace needed by the 'Sysprof' userspace | 140 | This tracer provides the trace needed by the 'Sysprof' userspace |
132 | tool. | 141 | tool. |
@@ -165,9 +174,8 @@ config BOOT_TRACER | |||
165 | representation of the delays during initcalls - but the raw | 174 | representation of the delays during initcalls - but the raw |
166 | /debug/tracing/trace text output is readable too. | 175 | /debug/tracing/trace text output is readable too. |
167 | 176 | ||
168 | ( Note that tracing self tests can't be enabled if this tracer is | 177 | You must pass in ftrace=initcall to the kernel command line |
169 | selected, because the self-tests are an initcall as well and that | 178 | to enable this on bootup. |
170 | would invalidate the boot trace. ) | ||
171 | 179 | ||
172 | config TRACE_BRANCH_PROFILING | 180 | config TRACE_BRANCH_PROFILING |
173 | bool "Trace likely/unlikely profiler" | 181 | bool "Trace likely/unlikely profiler" |
@@ -266,6 +274,62 @@ config HW_BRANCH_TRACER | |||
266 | This tracer records all branches on the system in a circular | 274 | This tracer records all branches on the system in a circular |
267 | buffer giving access to the last N branches for each cpu. | 275 | buffer giving access to the last N branches for each cpu. |
268 | 276 | ||
277 | config KMEMTRACE | ||
278 | bool "Trace SLAB allocations" | ||
279 | select TRACING | ||
280 | help | ||
281 | kmemtrace provides tracing for slab allocator functions, such as | ||
282 | kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected | ||
283 | data is then fed to the userspace application in order to analyse | ||
284 | allocation hotspots, internal fragmentation and so on, making it | ||
285 | possible to see how well an allocator performs, as well as debug | ||
286 | and profile kernel code. | ||
287 | |||
288 | This requires an userspace application to use. See | ||
289 | Documentation/vm/kmemtrace.txt for more information. | ||
290 | |||
291 | Saying Y will make the kernel somewhat larger and slower. However, | ||
292 | if you disable kmemtrace at run-time or boot-time, the performance | ||
293 | impact is minimal (depending on the arch the kernel is built for). | ||
294 | |||
295 | If unsure, say N. | ||
296 | |||
297 | config WORKQUEUE_TRACER | ||
298 | bool "Trace workqueues" | ||
299 | select TRACING | ||
300 | help | ||
301 | The workqueue tracer provides some statistical informations | ||
302 | about each cpu workqueue thread such as the number of the | ||
303 | works inserted and executed since their creation. It can help | ||
304 | to evaluate the amount of work each of them have to perform. | ||
305 | For example it can help a developer to decide whether he should | ||
306 | choose a per cpu workqueue instead of a singlethreaded one. | ||
307 | |||
308 | config BLK_DEV_IO_TRACE | ||
309 | bool "Support for tracing block io actions" | ||
310 | depends on SYSFS | ||
311 | depends on BLOCK | ||
312 | select RELAY | ||
313 | select DEBUG_FS | ||
314 | select TRACEPOINTS | ||
315 | select TRACING | ||
316 | select STACKTRACE | ||
317 | help | ||
318 | Say Y here if you want to be able to trace the block layer actions | ||
319 | on a given queue. Tracing allows you to see any traffic happening | ||
320 | on a block device queue. For more information (and the userspace | ||
321 | support tools needed), fetch the blktrace tools from: | ||
322 | |||
323 | git://git.kernel.dk/blktrace.git | ||
324 | |||
325 | Tracing also is possible using the ftrace interface, e.g.: | ||
326 | |||
327 | echo 1 > /sys/block/sda/sda1/trace/enable | ||
328 | echo blk > /sys/kernel/debug/tracing/current_tracer | ||
329 | cat /sys/kernel/debug/tracing/trace_pipe | ||
330 | |||
331 | If unsure, say N. | ||
332 | |||
269 | config DYNAMIC_FTRACE | 333 | config DYNAMIC_FTRACE |
270 | bool "enable/disable ftrace tracepoints dynamically" | 334 | bool "enable/disable ftrace tracepoints dynamically" |
271 | depends on FUNCTION_TRACER | 335 | depends on FUNCTION_TRACER |
@@ -296,7 +360,7 @@ config FTRACE_SELFTEST | |||
296 | 360 | ||
297 | config FTRACE_STARTUP_TEST | 361 | config FTRACE_STARTUP_TEST |
298 | bool "Perform a startup test on ftrace" | 362 | bool "Perform a startup test on ftrace" |
299 | depends on TRACING && DEBUG_KERNEL && !BOOT_TRACER | 363 | depends on TRACING && DEBUG_KERNEL |
300 | select FTRACE_SELFTEST | 364 | select FTRACE_SELFTEST |
301 | help | 365 | help |
302 | This option performs a series of startup tests on ftrace. On bootup | 366 | This option performs a series of startup tests on ftrace. On bootup |