Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[safe/jmp/linux-2.6] / kernel / trace / Kconfig
index f09d763..d006554 100644 (file)
@@ -11,12 +11,18 @@ config NOP_TRACER
 
 config HAVE_FTRACE_NMI_ENTER
        bool
 
 config HAVE_FTRACE_NMI_ENTER
        bool
+       help
+         See Documentation/trace/ftrace-implementation.txt
 
 config HAVE_FUNCTION_TRACER
        bool
 
 config HAVE_FUNCTION_TRACER
        bool
+       help
+         See Documentation/trace/ftrace-implementation.txt
 
 config HAVE_FUNCTION_GRAPH_TRACER
        bool
 
 config HAVE_FUNCTION_GRAPH_TRACER
        bool
+       help
+         See Documentation/trace/ftrace-implementation.txt
 
 config HAVE_FUNCTION_GRAPH_FP_TEST
        bool
 
 config HAVE_FUNCTION_GRAPH_FP_TEST
        bool
@@ -28,21 +34,25 @@ config HAVE_FUNCTION_GRAPH_FP_TEST
 config HAVE_FUNCTION_TRACE_MCOUNT_TEST
        bool
        help
 config HAVE_FUNCTION_TRACE_MCOUNT_TEST
        bool
        help
-        This gets selected when the arch tests the function_trace_stop
-        variable at the mcount call site. Otherwise, this variable
-        is tested by the called function.
+         See Documentation/trace/ftrace-implementation.txt
 
 config HAVE_DYNAMIC_FTRACE
        bool
 
 config HAVE_DYNAMIC_FTRACE
        bool
+       help
+         See Documentation/trace/ftrace-implementation.txt
 
 config HAVE_FTRACE_MCOUNT_RECORD
        bool
 
 config HAVE_FTRACE_MCOUNT_RECORD
        bool
+       help
+         See Documentation/trace/ftrace-implementation.txt
 
 config HAVE_HW_BRANCH_TRACER
        bool
 
 
 config HAVE_HW_BRANCH_TRACER
        bool
 
-config HAVE_FTRACE_SYSCALLS
+config HAVE_SYSCALL_TRACEPOINTS
        bool
        bool
+       help
+         See Documentation/trace/ftrace-implementation.txt
 
 config TRACER_MAX_TRACE
        bool
 
 config TRACER_MAX_TRACE
        bool
@@ -60,15 +70,20 @@ config EVENT_TRACING
        bool
 
 config CONTEXT_SWITCH_TRACER
        bool
 
 config CONTEXT_SWITCH_TRACER
-       select MARKERS
        bool
 
        bool
 
+config RING_BUFFER_ALLOW_SWAP
+       bool
+       help
+        Allow the use of ring_buffer_swap_cpu.
+        Adds a very slight overhead to tracing when enabled.
+
 # All tracer options should select GENERIC_TRACER. For those options that are
 # enabled by all tracers (context switch and event tracer) they select TRACING.
 # This allows those options to appear when no other tracer is selected. But the
 # options do not appear when something else selects it. We need the two options
 # GENERIC_TRACER and TRACING to avoid circular dependencies to accomplish the
 # All tracer options should select GENERIC_TRACER. For those options that are
 # enabled by all tracers (context switch and event tracer) they select TRACING.
 # This allows those options to appear when no other tracer is selected. But the
 # options do not appear when something else selects it. We need the two options
 # GENERIC_TRACER and TRACING to avoid circular dependencies to accomplish the
-# hidding of the automatic options options.
+# hidding of the automatic options.
 
 config TRACING
        bool
 
 config TRACING
        bool
@@ -147,6 +162,7 @@ config IRQSOFF_TRACER
        select TRACE_IRQFLAGS
        select GENERIC_TRACER
        select TRACER_MAX_TRACE
        select TRACE_IRQFLAGS
        select GENERIC_TRACER
        select TRACER_MAX_TRACE
+       select RING_BUFFER_ALLOW_SWAP
        help
          This option measures the time spent in irqs-off critical
          sections, with microsecond accuracy.
        help
          This option measures the time spent in irqs-off critical
          sections, with microsecond accuracy.
@@ -168,6 +184,7 @@ config PREEMPT_TRACER
        depends on PREEMPT
        select GENERIC_TRACER
        select TRACER_MAX_TRACE
        depends on PREEMPT
        select GENERIC_TRACER
        select TRACER_MAX_TRACE
+       select RING_BUFFER_ALLOW_SWAP
        help
          This option measures the time spent in preemption off critical
          sections, with microsecond accuracy.
        help
          This option measures the time spent in preemption off critical
          sections, with microsecond accuracy.
@@ -211,7 +228,7 @@ config ENABLE_DEFAULT_TRACERS
 
 config FTRACE_SYSCALLS
        bool "Trace syscalls"
 
 config FTRACE_SYSCALLS
        bool "Trace syscalls"
-       depends on HAVE_FTRACE_SYSCALLS
+       depends on HAVE_SYSCALL_TRACEPOINTS
        select GENERIC_TRACER
        select KALLSYMS
        help
        select GENERIC_TRACER
        select KALLSYMS
        help
@@ -234,16 +251,6 @@ config BOOT_TRACER
          You must pass in initcall_debug and ftrace=initcall to the kernel
          command line to enable this on bootup.
 
          You must pass in initcall_debug and ftrace=initcall to the kernel
          command line to enable this on bootup.
 
-config SKB_SOURCES_TRACER
-       bool "Trace skb source information"
-       select GENERIC_TRACER
-       help
-          This tracer helps developers/sysadmins correlate skb allocation and
-          consumption.  The idea being that some processes will primarily consume data
-          that was allocated on certain numa nodes.  By being able to visualize which
-          nodes the data was allocated on, a sysadmin or developer can optimize the
-          scheduling of those processes to cut back on cross node chatter.
-
 config TRACE_BRANCH_PROFILING
        bool
        select GENERIC_TRACER
 config TRACE_BRANCH_PROFILING
        bool
        select GENERIC_TRACER
@@ -332,6 +339,27 @@ config POWER_TRACER
          power management decisions, specifically the C-state and P-state
          behavior.
 
          power management decisions, specifically the C-state and P-state
          behavior.
 
+config KSYM_TRACER
+       bool "Trace read and write access on kernel memory locations"
+       depends on HAVE_HW_BREAKPOINT
+       select TRACING
+       help
+         This tracer helps find read and write operations on any given kernel
+         symbol i.e. /proc/kallsyms.
+
+config PROFILE_KSYM_TRACER
+       bool "Profile all kernel memory accesses on 'watched' variables"
+       depends on KSYM_TRACER
+       help
+         This tracer profiles kernel accesses on variables watched through the
+         ksym tracer ftrace plugin. Depending upon the hardware, all read
+         and write operations on kernel variables can be monitored for
+         accesses.
+
+         The results will be displayed in:
+         /debugfs/tracing/profile_ksym
+
+         Say N if unsure.
 
 config STACK_TRACER
        bool "Trace max stack"
 
 config STACK_TRACER
        bool "Trace max stack"
@@ -421,6 +449,23 @@ config BLK_DEV_IO_TRACE
 
          If unsure, say N.
 
 
          If unsure, say N.
 
+config KPROBE_EVENT
+       depends on KPROBES
+       depends on X86
+       bool "Enable kprobes-based dynamic events"
+       select TRACING
+       default y
+       help
+         This allows the user to add tracing events (similar to tracepoints) on the fly
+         via the ftrace interface. See Documentation/trace/kprobetrace.txt
+         for more details.
+
+         Those events can be inserted wherever kprobes can probe, and record
+         various register and memory values.
+
+         This option is also required by perf-probe subcommand of perf tools. If
+         you want to use perf tools, this option is strongly recommended.
+
 config DYNAMIC_FTRACE
        bool "enable/disable ftrace tracepoints dynamically"
        depends on FUNCTION_TRACER
 config DYNAMIC_FTRACE
        bool "enable/disable ftrace tracepoints dynamically"
        depends on FUNCTION_TRACER
@@ -472,6 +517,18 @@ config FTRACE_STARTUP_TEST
          functioning properly. It will do tests on all the configured
          tracers of ftrace.
 
          functioning properly. It will do tests on all the configured
          tracers of ftrace.
 
+config EVENT_TRACE_TEST_SYSCALLS
+       bool "Run selftest on syscall events"
+       depends on FTRACE_STARTUP_TEST
+       help
+        This option will also enable testing every syscall event.
+        It only enables the event and disables it and runs various loads
+        with the event enabled. This adds a bit more time for kernel boot
+        up since it runs this on every system call defined.
+
+        TBD - enable a way to actually call the syscalls as we test their
+              events
+
 config MMIOTRACE
        bool "Memory mapped IO tracing"
        depends on HAVE_MMIOTRACE_SUPPORT && PCI
 config MMIOTRACE
        bool "Memory mapped IO tracing"
        depends on HAVE_MMIOTRACE_SUPPORT && PCI