]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/trace/Kconfig
fat: use generic_file_llseek() for directory
[linux-2.6-omap-h63xx.git] / kernel / trace / Kconfig
index d7b2de744631788e61b3fb14dc5600e70bd28d60..33dbefd471e88f9571f299f92b433188dd6697de 100644 (file)
@@ -1,7 +1,12 @@
 #
-# Architectures that offer an FTRACE implementation should select HAVE_FTRACE:
+# Architectures that offer an FUNCTION_TRACER implementation should
+#  select HAVE_FUNCTION_TRACER:
 #
-config HAVE_FTRACE
+
+config NOP_TRACER
+       bool
+
+config HAVE_FUNCTION_TRACER
        bool
 
 config HAVE_DYNAMIC_FTRACE
@@ -13,15 +18,22 @@ config HAVE_FTRACE_MCOUNT_RECORD
 config TRACER_MAX_TRACE
        bool
 
+config RING_BUFFER
+       bool
+
 config TRACING
        bool
        select DEBUG_FS
-       select STACKTRACE
+       select RING_BUFFER
+       select STACKTRACE if STACKTRACE_SUPPORT
        select TRACEPOINTS
+       select NOP_TRACER
+
+menu "Tracers"
 
-config FTRACE
+config FUNCTION_TRACER
        bool "Kernel Function Tracer"
-       depends on HAVE_FTRACE
+       depends on HAVE_FUNCTION_TRACER
        depends on DEBUG_KERNEL
        select FRAME_POINTER
        select TRACING
@@ -40,7 +52,6 @@ config IRQSOFF_TRACER
        default n
        depends on TRACE_IRQFLAGS_SUPPORT
        depends on GENERIC_TIME
-       depends on HAVE_FTRACE
        depends on DEBUG_KERNEL
        select TRACE_IRQFLAGS
        select TRACING
@@ -64,7 +75,6 @@ config PREEMPT_TRACER
        default n
        depends on GENERIC_TIME
        depends on PREEMPT
-       depends on HAVE_FTRACE
        depends on DEBUG_KERNEL
        select TRACING
        select TRACER_MAX_TRACE
@@ -92,7 +102,6 @@ config SYSPROF_TRACER
 
 config SCHED_TRACER
        bool "Scheduling Latency Tracer"
-       depends on HAVE_FTRACE
        depends on DEBUG_KERNEL
        select TRACING
        select CONTEXT_SWITCH_TRACER
@@ -101,19 +110,8 @@ config SCHED_TRACER
          This tracer tracks the latency of the highest priority task
          to be scheduled in, starting from the point it has woken up.
 
-config NOP_TRACER
-       bool "NOP Tracer"
-       depends on HAVE_FTRACE
-       depends on DEBUG_KERNEL
-       select TRACING
-       help
-         This tracer does nothing. The primary purpose for it is to
-         politely print the output of ftrace_printk() calls without
-         the overhead of an irrelevant trace taking place.
-
 config CONTEXT_SWITCH_TRACER
        bool "Trace process context switches"
-       depends on HAVE_FTRACE
        depends on DEBUG_KERNEL
        select TRACING
        select MARKERS
@@ -121,19 +119,47 @@ config CONTEXT_SWITCH_TRACER
          This tracer gets called from the context switch and records
          all switching of tasks.
 
+config BOOT_TRACER
+       bool "Trace boot initcalls"
+       depends on DEBUG_KERNEL
+       select TRACING
+       select CONTEXT_SWITCH_TRACER
+       help
+         This tracer helps developers to optimize boot times: it records
+         the timings of the initcalls and traces key events and the identity
+         of tasks that can cause boot delays, such as context-switches.
+
+         Its aim is to be parsed by the /scripts/bootgraph.pl tool to
+         produce pretty graphics about boot inefficiencies, giving a visual
+         representation of the delays during initcalls - but the raw
+         /debug/tracing/trace text output is readable too.
+
+         ( Note that tracing self tests can't be enabled if this tracer is
+           selected, because the self-tests are an initcall as well and that
+           would invalidate the boot trace. )
+
 config STACK_TRACER
        bool "Trace max stack"
-       depends on HAVE_FTRACE
+       depends on HAVE_FUNCTION_TRACER
        depends on DEBUG_KERNEL
-       select FTRACE
+       select FUNCTION_TRACER
        select STACKTRACE
        help
-         This tracer records the max stack of the kernel, and displays
-         it in debugfs/tracing/stack_trace
+         This special tracer records the maximum stack footprint of the
+         kernel and displays it in debugfs/tracing/stack_trace.
+
+         This tracer works by hooking into every function call that the
+         kernel executes, and keeping a maximum stack depth value and
+         stack-trace saved. Because this logic has to execute in every
+         kernel function, all the time, this option can slow down the
+         kernel measurably and is generally intended for kernel
+         developers only.
+
+         Say N if unsure.
 
 config DYNAMIC_FTRACE
        bool "enable/disable ftrace tracepoints dynamically"
-       depends on FTRACE
+       depends on FUNCTION_TRACER
        depends on HAVE_DYNAMIC_FTRACE
        depends on DEBUG_KERNEL
        default y
@@ -143,7 +169,7 @@ config DYNAMIC_FTRACE
         with a No-Op instruction) as they are called. A table is
         created to dynamically enable them again.
 
-        This way a CONFIG_FTRACE kernel is slightly larger, but otherwise
+        This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise
         has native performance as long as no tracing is active.
 
         The changes to the code are done by a kernel thread that
@@ -161,11 +187,12 @@ config FTRACE_SELFTEST
 
 config FTRACE_STARTUP_TEST
        bool "Perform a startup test on ftrace"
-       depends on TRACING
-       depends on DEBUG_KERNEL
+       depends on TRACING && DEBUG_KERNEL && !BOOT_TRACER
        select FTRACE_SELFTEST
        help
          This option performs a series of startup tests on ftrace. On bootup
          a series of tests are made to verify that the tracer is
          functioning properly. It will do tests on all the configured
          tracers of ftrace.
+
+endmenu