Kconfig 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #
  2. # Architectures that offer an FTRACE implementation should select HAVE_FTRACE:
  3. #
  4. config HAVE_FTRACE
  5. bool
  6. config HAVE_DYNAMIC_FTRACE
  7. bool
  8. config HAVE_FTRACE_MCOUNT_RECORD
  9. bool
  10. config TRACER_MAX_TRACE
  11. bool
  12. config TRACING
  13. bool
  14. select DEBUG_FS
  15. select STACKTRACE
  16. select TRACEPOINTS
  17. config FTRACE
  18. bool "Kernel Function Tracer"
  19. depends on HAVE_FTRACE
  20. select FRAME_POINTER
  21. select TRACING
  22. select CONTEXT_SWITCH_TRACER
  23. help
  24. Enable the kernel to trace every kernel function. This is done
  25. by using a compiler feature to insert a small, 5-byte No-Operation
  26. instruction to the beginning of every kernel function, which NOP
  27. sequence is then dynamically patched into a tracer call when
  28. tracing is enabled by the administrator. If it's runtime disabled
  29. (the bootup default), then the overhead of the instructions is very
  30. small and not measurable even in micro-benchmarks.
  31. config IRQSOFF_TRACER
  32. bool "Interrupts-off Latency Tracer"
  33. default n
  34. depends on TRACE_IRQFLAGS_SUPPORT
  35. depends on GENERIC_TIME
  36. depends on HAVE_FTRACE
  37. select TRACE_IRQFLAGS
  38. select TRACING
  39. select TRACER_MAX_TRACE
  40. help
  41. This option measures the time spent in irqs-off critical
  42. sections, with microsecond accuracy.
  43. The default measurement method is a maximum search, which is
  44. disabled by default and can be runtime (re-)started
  45. via:
  46. echo 0 > /debugfs/tracing/tracing_max_latency
  47. (Note that kernel size and overhead increases with this option
  48. enabled. This option and the preempt-off timing option can be
  49. used together or separately.)
  50. config PREEMPT_TRACER
  51. bool "Preemption-off Latency Tracer"
  52. default n
  53. depends on GENERIC_TIME
  54. depends on PREEMPT
  55. depends on HAVE_FTRACE
  56. select TRACING
  57. select TRACER_MAX_TRACE
  58. help
  59. This option measures the time spent in preemption off critical
  60. sections, with microsecond accuracy.
  61. The default measurement method is a maximum search, which is
  62. disabled by default and can be runtime (re-)started
  63. via:
  64. echo 0 > /debugfs/tracing/tracing_max_latency
  65. (Note that kernel size and overhead increases with this option
  66. enabled. This option and the irqs-off timing option can be
  67. used together or separately.)
  68. config SYSPROF_TRACER
  69. bool "Sysprof Tracer"
  70. depends on X86
  71. select TRACING
  72. help
  73. This tracer provides the trace needed by the 'Sysprof' userspace
  74. tool.
  75. config SCHED_TRACER
  76. bool "Scheduling Latency Tracer"
  77. depends on HAVE_FTRACE
  78. select TRACING
  79. select CONTEXT_SWITCH_TRACER
  80. select TRACER_MAX_TRACE
  81. help
  82. This tracer tracks the latency of the highest priority task
  83. to be scheduled in, starting from the point it has woken up.
  84. config CONTEXT_SWITCH_TRACER
  85. bool "Trace process context switches"
  86. depends on HAVE_FTRACE
  87. select TRACING
  88. select MARKERS
  89. help
  90. This tracer gets called from the context switch and records
  91. all switching of tasks.
  92. config STACK_TRACER
  93. bool "Trace max stack"
  94. depends on HAVE_FTRACE
  95. depends on DEBUG_KERNEL
  96. select FTRACE
  97. select STACKTRACE
  98. help
  99. This tracer records the max stack of the kernel, and displays
  100. it in debugfs/tracing/stack_trace
  101. config DYNAMIC_FTRACE
  102. bool "enable/disable ftrace tracepoints dynamically"
  103. depends on FTRACE
  104. depends on HAVE_DYNAMIC_FTRACE
  105. default y
  106. help
  107. This option will modify all the calls to ftrace dynamically
  108. (will patch them out of the binary image and replaces them
  109. with a No-Op instruction) as they are called. A table is
  110. created to dynamically enable them again.
  111. This way a CONFIG_FTRACE kernel is slightly larger, but otherwise
  112. has native performance as long as no tracing is active.
  113. The changes to the code are done by a kernel thread that
  114. wakes up once a second and checks to see if any ftrace calls
  115. were made. If so, it runs stop_machine (stops all CPUS)
  116. and modifies the code to jump over the call to ftrace.
  117. config FTRACE_MCOUNT_RECORD
  118. def_bool y
  119. depends on DYNAMIC_FTRACE
  120. depends on HAVE_FTRACE_MCOUNT_RECORD
  121. config FTRACE_SELFTEST
  122. bool
  123. config FTRACE_STARTUP_TEST
  124. bool "Perform a startup test on ftrace"
  125. depends on TRACING
  126. select FTRACE_SELFTEST
  127. help
  128. This option performs a series of startup tests on ftrace. On bootup
  129. a series of tests are made to verify that the tracer is
  130. functioning properly. It will do tests on all the configured
  131. tracers of ftrace.