Kconfig (83400207a07584539366f6859362db6872809a12) | Kconfig (5f77a88b3f8268b11940b51d2e03d26a663ceb90) |
---|---|
1# 2# Architectures that offer an FUNCTION_TRACER implementation should 3# select HAVE_FUNCTION_TRACER: 4# 5 6config USER_STACKTRACE_SUPPORT 7 bool 8 --- 34 unchanged lines hidden (view full) --- 43config RING_BUFFER 44 bool 45 46config FTRACE_NMI_ENTER 47 bool 48 depends on HAVE_FTRACE_NMI_ENTER 49 default y 50 | 1# 2# Architectures that offer an FUNCTION_TRACER implementation should 3# select HAVE_FUNCTION_TRACER: 4# 5 6config USER_STACKTRACE_SUPPORT 7 bool 8 --- 34 unchanged lines hidden (view full) --- 43config RING_BUFFER 44 bool 45 46config FTRACE_NMI_ENTER 47 bool 48 depends on HAVE_FTRACE_NMI_ENTER 49 default y 50 |
51config EVENT_TRACING 52 bool 53 |
|
51config TRACING 52 bool 53 select DEBUG_FS 54 select RING_BUFFER 55 select STACKTRACE if STACKTRACE_SUPPORT 56 select TRACEPOINTS 57 select NOP_TRACER 58 select BINARY_PRINTF | 54config TRACING 55 bool 56 select DEBUG_FS 57 select RING_BUFFER 58 select STACKTRACE if STACKTRACE_SUPPORT 59 select TRACEPOINTS 60 select NOP_TRACER 61 select BINARY_PRINTF |
62 select EVENT_TRACING |
|
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 --- 32 unchanged lines hidden (view full) --- 99 help 100 Enable the kernel to trace a function at both its return 101 and its entry. 102 Its first purpose is to trace the duration of functions and 103 draw a call graph for each thread with some information like 104 the return value. This is done by setting the current return 105 address on the current task structure into a stack of calls. 106 | 63 64# 65# Minimum requirements an architecture has to meet for us to 66# be able to offer generic tracing facilities: 67# 68config TRACING_SUPPORT 69 bool 70 # PPC32 has no irqflags tracing support, but it can use most of the --- 32 unchanged lines hidden (view full) --- 103 help 104 Enable the kernel to trace a function at both its return 105 and its entry. 106 Its first purpose is to trace the duration of functions and 107 draw a call graph for each thread with some information like 108 the return value. This is done by setting the current return 109 address on the current task structure into a stack of calls. 110 |
111 |
|
107config IRQSOFF_TRACER 108 bool "Interrupts-off Latency Tracer" 109 default n 110 depends on TRACE_IRQFLAGS_SUPPORT 111 depends on GENERIC_TIME 112 select TRACE_IRQFLAGS 113 select TRACING 114 select TRACER_MAX_TRACE --- 192 unchanged lines hidden (view full) --- 307 kmemtrace provides tracing for slab allocator functions, such as 308 kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected 309 data is then fed to the userspace application in order to analyse 310 allocation hotspots, internal fragmentation and so on, making it 311 possible to see how well an allocator performs, as well as debug 312 and profile kernel code. 313 314 This requires an userspace application to use. See | 112config IRQSOFF_TRACER 113 bool "Interrupts-off Latency Tracer" 114 default n 115 depends on TRACE_IRQFLAGS_SUPPORT 116 depends on GENERIC_TIME 117 select TRACE_IRQFLAGS 118 select TRACING 119 select TRACER_MAX_TRACE --- 192 unchanged lines hidden (view full) --- 312 kmemtrace provides tracing for slab allocator functions, such as 313 kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected 314 data is then fed to the userspace application in order to analyse 315 allocation hotspots, internal fragmentation and so on, making it 316 possible to see how well an allocator performs, as well as debug 317 and profile kernel code. 318 319 This requires an userspace application to use. See |
315 Documentation/trace/kmemtrace.txt for more information. | 320 Documentation/vm/kmemtrace.txt for more information. |
316 317 Saying Y will make the kernel somewhat larger and slower. However, 318 if you disable kmemtrace at run-time or boot-time, the performance 319 impact is minimal (depending on the arch the kernel is built for). 320 321 If unsure, say N. 322 323config WORKQUEUE_TRACER --- 46 unchanged lines hidden (view full) --- 370 This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise 371 has native performance as long as no tracing is active. 372 373 The changes to the code are done by a kernel thread that 374 wakes up once a second and checks to see if any ftrace calls 375 were made. If so, it runs stop_machine (stops all CPUS) 376 and modifies the code to jump over the call to ftrace. 377 | 321 322 Saying Y will make the kernel somewhat larger and slower. However, 323 if you disable kmemtrace at run-time or boot-time, the performance 324 impact is minimal (depending on the arch the kernel is built for). 325 326 If unsure, say N. 327 328config WORKQUEUE_TRACER --- 46 unchanged lines hidden (view full) --- 375 This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise 376 has native performance as long as no tracing is active. 377 378 The changes to the code are done by a kernel thread that 379 wakes up once a second and checks to see if any ftrace calls 380 were made. If so, it runs stop_machine (stops all CPUS) 381 and modifies the code to jump over the call to ftrace. 382 |
383config FUNCTION_PROFILER 384 bool "Kernel function profiler" 385 depends on FUNCTION_TRACER 386 default n 387 help 388 This option enables the kernel function profiler. A file is created 389 in debugfs called function_profile_enabled which defaults to zero. 390 When a 1 is echoed into this file profiling begins, and when a 391 zero is entered, profiling stops. A file in the trace_stats 392 directory called functions, that show the list of functions that 393 have been hit and their counters. 394 395 If in doubt, say N 396 |
|
378config FTRACE_MCOUNT_RECORD 379 def_bool y 380 depends on DYNAMIC_FTRACE 381 depends on HAVE_FTRACE_MCOUNT_RECORD 382 383config FTRACE_SELFTEST 384 bool 385 --- 12 unchanged lines hidden (view full) --- 398 depends on HAVE_MMIOTRACE_SUPPORT && PCI 399 select TRACING 400 help 401 Mmiotrace traces Memory Mapped I/O access and is meant for 402 debugging and reverse engineering. It is called from the ioremap 403 implementation and works via page faults. Tracing is disabled by 404 default and can be enabled at run-time. 405 | 397config FTRACE_MCOUNT_RECORD 398 def_bool y 399 depends on DYNAMIC_FTRACE 400 depends on HAVE_FTRACE_MCOUNT_RECORD 401 402config FTRACE_SELFTEST 403 bool 404 --- 12 unchanged lines hidden (view full) --- 417 depends on HAVE_MMIOTRACE_SUPPORT && PCI 418 select TRACING 419 help 420 Mmiotrace traces Memory Mapped I/O access and is meant for 421 debugging and reverse engineering. It is called from the ioremap 422 implementation and works via page faults. Tracing is disabled by 423 default and can be enabled at run-time. 424 |
406 See Documentation/trace/mmiotrace.txt. | 425 See Documentation/tracers/mmiotrace.txt. |
407 If you are not helping to develop drivers, say N. 408 409config MMIOTRACE_TEST 410 tristate "Test module for mmiotrace" 411 depends on MMIOTRACE && m 412 help 413 This is a dumb module for testing mmiotrace. It is very dangerous 414 as it will write garbage to IO memory starting at a given address. 415 However, it should be safe to use on e.g. unused portion of VRAM. 416 417 Say N, unless you absolutely know what you are doing. 418 419endmenu 420 421endif # TRACING_SUPPORT 422 | 426 If you are not helping to develop drivers, say N. 427 428config MMIOTRACE_TEST 429 tristate "Test module for mmiotrace" 430 depends on MMIOTRACE && m 431 help 432 This is a dumb module for testing mmiotrace. It is very dangerous 433 as it will write garbage to IO memory starting at a given address. 434 However, it should be safe to use on e.g. unused portion of VRAM. 435 436 Say N, unless you absolutely know what you are doing. 437 438endmenu 439 440endif # TRACING_SUPPORT 441 |