Kconfig 3.8 KB

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