home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / kernel / trace / Kconfig next >
Encoding:
Text File  |  2009-09-09  |  5.8 KB  |  208 lines

  1. #
  2. # Architectures that offer an FUNCTION_TRACER implementation should
  3. #  select HAVE_FUNCTION_TRACER:
  4. #
  5.  
  6. config NOP_TRACER
  7.     bool
  8.  
  9. config HAVE_FUNCTION_TRACER
  10.     bool
  11.  
  12. config HAVE_DYNAMIC_FTRACE
  13.     bool
  14.  
  15. config HAVE_FTRACE_MCOUNT_RECORD
  16.     bool
  17.  
  18. config TRACER_MAX_TRACE
  19.     bool
  20.  
  21. config RING_BUFFER
  22.     bool
  23.  
  24. config TRACING
  25.     bool
  26.     select DEBUG_FS
  27.     select RING_BUFFER
  28.     select STACKTRACE if STACKTRACE_SUPPORT
  29.     select TRACEPOINTS
  30.     select NOP_TRACER
  31.  
  32. menu "Tracers"
  33.  
  34. config FUNCTION_TRACER
  35.     bool "Kernel Function Tracer"
  36.     depends on HAVE_FUNCTION_TRACER
  37.     depends on DEBUG_KERNEL
  38.     select FRAME_POINTER
  39.     select TRACING
  40.     select CONTEXT_SWITCH_TRACER
  41.     help
  42.       Enable the kernel to trace every kernel function. This is done
  43.       by using a compiler feature to insert a small, 5-byte No-Operation
  44.       instruction to the beginning of every kernel function, which NOP
  45.       sequence is then dynamically patched into a tracer call when
  46.       tracing is enabled by the administrator. If it's runtime disabled
  47.       (the bootup default), then the overhead of the instructions is very
  48.       small and not measurable even in micro-benchmarks.
  49.  
  50. config IRQSOFF_TRACER
  51.     bool "Interrupts-off Latency Tracer"
  52.     default n
  53.     depends on TRACE_IRQFLAGS_SUPPORT
  54.     depends on GENERIC_TIME
  55.     depends on DEBUG_KERNEL
  56.     select TRACE_IRQFLAGS
  57.     select TRACING
  58.     select TRACER_MAX_TRACE
  59.     help
  60.       This option measures the time spent in irqs-off critical
  61.       sections, with microsecond accuracy.
  62.  
  63.       The default measurement method is a maximum search, which is
  64.       disabled by default and can be runtime (re-)started
  65.       via:
  66.  
  67.           echo 0 > /debugfs/tracing/tracing_max_latency
  68.  
  69.       (Note that kernel size and overhead increases with this option
  70.       enabled. This option and the preempt-off timing option can be
  71.       used together or separately.)
  72.  
  73. config PREEMPT_TRACER
  74.     bool "Preemption-off Latency Tracer"
  75.     default n
  76.     depends on GENERIC_TIME
  77.     depends on PREEMPT
  78.     depends on DEBUG_KERNEL
  79.     select TRACING
  80.     select TRACER_MAX_TRACE
  81.     help
  82.       This option measures the time spent in preemption off critical
  83.       sections, with microsecond accuracy.
  84.  
  85.       The default measurement method is a maximum search, which is
  86.       disabled by default and can be runtime (re-)started
  87.       via:
  88.  
  89.           echo 0 > /debugfs/tracing/tracing_max_latency
  90.  
  91.       (Note that kernel size and overhead increases with this option
  92.       enabled. This option and the irqs-off timing option can be
  93.       used together or separately.)
  94.  
  95. config SYSPROF_TRACER
  96.     bool "Sysprof Tracer"
  97.     depends on X86
  98.     select TRACING
  99.     help
  100.       This tracer provides the trace needed by the 'Sysprof' userspace
  101.       tool.
  102.  
  103. config SCHED_TRACER
  104.     bool "Scheduling Latency Tracer"
  105.     depends on DEBUG_KERNEL
  106.     select TRACING
  107.     select CONTEXT_SWITCH_TRACER
  108.     select TRACER_MAX_TRACE
  109.     help
  110.       This tracer tracks the latency of the highest priority task
  111.       to be scheduled in, starting from the point it has woken up.
  112.  
  113. config CONTEXT_SWITCH_TRACER
  114.     bool "Trace process context switches"
  115.     depends on DEBUG_KERNEL
  116.     select TRACING
  117.     select MARKERS
  118.     help
  119.       This tracer gets called from the context switch and records
  120.       all switching of tasks.
  121.  
  122. config OPEN_TRACER
  123.     bool "Trace open() calls"
  124.     depends on DEBUG_KERNEL
  125.     select TRACING
  126.     select MARKERS
  127.     help
  128.       This tracer records open() syscalls. These calls are made when
  129.       files are accessed on disk.
  130.  
  131. config BOOT_TRACER
  132.     bool "Trace boot initcalls"
  133.     depends on DEBUG_KERNEL
  134.     select TRACING
  135.     select CONTEXT_SWITCH_TRACER
  136.     help
  137.       This tracer helps developers to optimize boot times: it records
  138.       the timings of the initcalls and traces key events and the identity
  139.       of tasks that can cause boot delays, such as context-switches.
  140.  
  141.       Its aim is to be parsed by the /scripts/bootgraph.pl tool to
  142.       produce pretty graphics about boot inefficiencies, giving a visual
  143.       representation of the delays during initcalls - but the raw
  144.       /debug/tracing/trace text output is readable too.
  145.  
  146.       ( Note that tracing self tests can't be enabled if this tracer is
  147.         selected, because the self-tests are an initcall as well and that
  148.         would invalidate the boot trace. )
  149.  
  150. config STACK_TRACER
  151.     bool "Trace max stack"
  152.     depends on HAVE_FUNCTION_TRACER
  153.     depends on DEBUG_KERNEL
  154.     select FUNCTION_TRACER
  155.     select STACKTRACE
  156.     help
  157.       This special tracer records the maximum stack footprint of the
  158.       kernel and displays it in debugfs/tracing/stack_trace.
  159.  
  160.       This tracer works by hooking into every function call that the
  161.       kernel executes, and keeping a maximum stack depth value and
  162.       stack-trace saved. Because this logic has to execute in every
  163.       kernel function, all the time, this option can slow down the
  164.       kernel measurably and is generally intended for kernel
  165.       developers only.
  166.  
  167.       Say N if unsure.
  168.  
  169. config DYNAMIC_FTRACE
  170.     bool "enable/disable ftrace tracepoints dynamically"
  171.     depends on FUNCTION_TRACER
  172.     depends on HAVE_DYNAMIC_FTRACE
  173.     depends on DEBUG_KERNEL
  174.     default y
  175.     help
  176.          This option will modify all the calls to ftrace dynamically
  177.      (will patch them out of the binary image and replaces them
  178.      with a No-Op instruction) as they are called. A table is
  179.      created to dynamically enable them again.
  180.  
  181.      This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise
  182.      has native performance as long as no tracing is active.
  183.  
  184.      The changes to the code are done by a kernel thread that
  185.      wakes up once a second and checks to see if any ftrace calls
  186.      were made. If so, it runs stop_machine (stops all CPUS)
  187.      and modifies the code to jump over the call to ftrace.
  188.  
  189. config FTRACE_MCOUNT_RECORD
  190.     def_bool y
  191.     depends on DYNAMIC_FTRACE
  192.     depends on HAVE_FTRACE_MCOUNT_RECORD
  193.  
  194. config FTRACE_SELFTEST
  195.     bool
  196.  
  197. config FTRACE_STARTUP_TEST
  198.     bool "Perform a startup test on ftrace"
  199.     depends on TRACING && DEBUG_KERNEL && !BOOT_TRACER
  200.     select FTRACE_SELFTEST
  201.     help
  202.       This option performs a series of startup tests on ftrace. On bootup
  203.       a series of tests are made to verify that the tracer is
  204.       functioning properly. It will do tests on all the configured
  205.       tracers of ftrace.
  206.  
  207. endmenu
  208.