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