Kconfig 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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 SCHED_TRACER
  66. bool "Scheduling Latency Tracer"
  67. depends on HAVE_FTRACE
  68. select TRACING
  69. select CONTEXT_SWITCH_TRACER
  70. select TRACER_MAX_TRACE
  71. help
  72. This tracer tracks the latency of the highest priority task
  73. to be scheduled in, starting from the point it has woken up.
  74. config CONTEXT_SWITCH_TRACER
  75. bool "Trace process context switches"
  76. depends on HAVE_FTRACE
  77. select TRACING
  78. select MARKERS
  79. help
  80. This tracer gets called from the context switch and records
  81. all switching of tasks.
  82. config DYNAMIC_FTRACE
  83. bool "enable/disable ftrace tracepoints dynamically"
  84. depends on FTRACE
  85. depends on HAVE_DYNAMIC_FTRACE
  86. default y
  87. help
  88. This option will modify all the calls to ftrace dynamically
  89. (will patch them out of the binary image and replaces them
  90. with a No-Op instruction) as they are called. A table is
  91. created to dynamically enable them again.
  92. This way a CONFIG_FTRACE kernel is slightly larger, but otherwise
  93. has native performance as long as no tracing is active.
  94. The changes to the code are done by a kernel thread that
  95. wakes up once a second and checks to see if any ftrace calls
  96. were made. If so, it runs stop_machine (stops all CPUS)
  97. and modifies the code to jump over the call to ftrace.
  98. config FTRACE_SELFTEST
  99. bool
  100. config FTRACE_STARTUP_TEST
  101. bool "Perform a startup test on ftrace"
  102. depends on TRACING
  103. select FTRACE_SELFTEST
  104. help
  105. This option performs a series of startup tests on ftrace. On bootup
  106. a series of tests are made to verify that the tracer is
  107. functioning properly. It will do tests on all the configured
  108. tracers of ftrace.