Kconfig 3.5 KB

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