Merge tag 'ceph-for-5.6-rc1' of https://github.com/ceph/ceph-client
[linux-2.6-microblaze.git] / kernel / trace / Kconfig
index 25a0fcf..91e8851 100644 (file)
@@ -141,6 +141,15 @@ menuconfig FTRACE
 
 if FTRACE
 
+config BOOTTIME_TRACING
+       bool "Boot-time Tracing support"
+       depends on BOOT_CONFIG && TRACING
+       default y
+       help
+         Enable developer to setup ftrace subsystem via supplemental
+         kernel cmdline at boot time for debugging (tracing) driver
+         initialization and boot process.
+
 config FUNCTION_TRACER
        bool "Kernel Function Tracer"
        depends on HAVE_FUNCTION_TRACER
@@ -172,6 +181,77 @@ config FUNCTION_GRAPH_TRACER
          the return value. This is done by setting the current return
          address on the current task structure into a stack of calls.
 
+config DYNAMIC_FTRACE
+       bool "enable/disable function tracing dynamically"
+       depends on FUNCTION_TRACER
+       depends on HAVE_DYNAMIC_FTRACE
+       default y
+       help
+         This option will modify all the calls to function tracing
+         dynamically (will patch them out of the binary image and
+         replace them with a No-Op instruction) on boot up. During
+         compile time, a table is made of all the locations that ftrace
+         can function trace, and this table is linked into the kernel
+         image. When this is enabled, functions can be individually
+         enabled, and the functions not enabled will not affect
+         performance of the system.
+
+         See the files in /sys/kernel/debug/tracing:
+           available_filter_functions
+           set_ftrace_filter
+           set_ftrace_notrace
+
+         This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but
+         otherwise has native performance as long as no tracing is active.
+
+config DYNAMIC_FTRACE_WITH_REGS
+       def_bool y
+       depends on DYNAMIC_FTRACE
+       depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
+
+config DYNAMIC_FTRACE_WITH_DIRECT_CALLS
+       def_bool y
+       depends on DYNAMIC_FTRACE
+       depends on HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
+
+config FUNCTION_PROFILER
+       bool "Kernel function profiler"
+       depends on FUNCTION_TRACER
+       default n
+       help
+         This option enables the kernel function profiler. A file is created
+         in debugfs called function_profile_enabled which defaults to zero.
+         When a 1 is echoed into this file profiling begins, and when a
+         zero is entered, profiling stops. A "functions" file is created in
+         the trace_stat directory; this file shows the list of functions that
+         have been hit and their counters.
+
+         If in doubt, say N.
+
+config STACK_TRACER
+       bool "Trace max stack"
+       depends on HAVE_FUNCTION_TRACER
+       select FUNCTION_TRACER
+       select STACKTRACE
+       select KALLSYMS
+       help
+         This special tracer records the maximum stack footprint of the
+         kernel and displays it in /sys/kernel/debug/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.  If this is configured with DYNAMIC_FTRACE
+         then it will not have any overhead while the stack tracer
+         is disabled.
+
+         To enable the stack tracer on bootup, pass in 'stacktrace'
+         on the kernel command line.
+
+         The stack tracer can also be enabled or disabled via the
+         sysctl kernel.stack_tracer_enabled
+
+         Say N if unsure.
+
 config TRACE_PREEMPT_TOGGLE
        bool
        help
@@ -282,6 +362,19 @@ config HWLAT_TRACER
         file. Every time a latency is greater than tracing_thresh, it will
         be recorded into the ring buffer.
 
+config MMIOTRACE
+       bool "Memory mapped IO tracing"
+       depends on HAVE_MMIOTRACE_SUPPORT && PCI
+       select GENERIC_TRACER
+       help
+         Mmiotrace traces Memory Mapped I/O access and is meant for
+         debugging and reverse engineering. It is called from the ioremap
+         implementation and works via page faults. Tracing is disabled by
+         default and can be enabled at run-time.
+
+         See Documentation/trace/mmiotrace.rst.
+         If you are not helping to develop drivers, say N.
+
 config ENABLE_DEFAULT_TRACERS
        bool "Trace process context switches and events"
        depends on !GENERIC_TRACER
@@ -410,30 +503,6 @@ config BRANCH_TRACER
 
          Say N if unsure.
 
-config STACK_TRACER
-       bool "Trace max stack"
-       depends on HAVE_FUNCTION_TRACER
-       select FUNCTION_TRACER
-       select STACKTRACE
-       select KALLSYMS
-       help
-         This special tracer records the maximum stack footprint of the
-         kernel and displays it in /sys/kernel/debug/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.  If this is configured with DYNAMIC_FTRACE
-         then it will not have any overhead while the stack tracer
-         is disabled.
-
-         To enable the stack tracer on bootup, pass in 'stacktrace'
-         on the kernel command line.
-
-         The stack tracer can also be enabled or disabled via the
-         sysctl kernel.stack_tracer_enabled
-
-         Say N if unsure.
-
 config BLK_DEV_IO_TRACE
        bool "Support for tracing block IO actions"
        depends on SYSFS
@@ -531,53 +600,6 @@ config DYNAMIC_EVENTS
 config PROBE_EVENTS
        def_bool n
 
-config DYNAMIC_FTRACE
-       bool "enable/disable function tracing dynamically"
-       depends on FUNCTION_TRACER
-       depends on HAVE_DYNAMIC_FTRACE
-       default y
-       help
-         This option will modify all the calls to function tracing
-         dynamically (will patch them out of the binary image and
-         replace them with a No-Op instruction) on boot up. During
-         compile time, a table is made of all the locations that ftrace
-         can function trace, and this table is linked into the kernel
-         image. When this is enabled, functions can be individually
-         enabled, and the functions not enabled will not affect
-         performance of the system.
-
-         See the files in /sys/kernel/debug/tracing:
-           available_filter_functions
-           set_ftrace_filter
-           set_ftrace_notrace
-
-         This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but
-         otherwise has native performance as long as no tracing is active.
-
-config DYNAMIC_FTRACE_WITH_REGS
-       def_bool y
-       depends on DYNAMIC_FTRACE
-       depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
-
-config DYNAMIC_FTRACE_WITH_DIRECT_CALLS
-       def_bool y
-       depends on DYNAMIC_FTRACE
-       depends on HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
-
-config FUNCTION_PROFILER
-       bool "Kernel function profiler"
-       depends on FUNCTION_TRACER
-       default n
-       help
-         This option enables the kernel function profiler. A file is created
-         in debugfs called function_profile_enabled which defaults to zero.
-         When a 1 is echoed into this file profiling begins, and when a
-         zero is entered, profiling stops. A "functions" file is created in
-         the trace_stat directory; this file shows the list of functions that
-         have been hit and their counters.
-
-         If in doubt, say N.
-
 config BPF_KPROBE_OVERRIDE
        bool "Enable BPF programs to override a kprobed function"
        depends on BPF_EVENTS
@@ -592,54 +614,6 @@ config FTRACE_MCOUNT_RECORD
        depends on DYNAMIC_FTRACE
        depends on HAVE_FTRACE_MCOUNT_RECORD
 
-config FTRACE_SELFTEST
-       bool
-
-config FTRACE_STARTUP_TEST
-       bool "Perform a startup test on ftrace"
-       depends on GENERIC_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.
-
-config EVENT_TRACE_STARTUP_TEST
-       bool "Run selftest on trace events"
-       depends on FTRACE_STARTUP_TEST
-       default y
-       help
-         This option performs a test on all trace events in the system.
-         It basically just enables each event and runs some code that
-         will trigger events (not necessarily the event it enables)
-         This may take some time run as there are a lot of events.
-
-config EVENT_TRACE_TEST_SYSCALLS
-       bool "Run selftest on syscall events"
-       depends on EVENT_TRACE_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
-       select GENERIC_TRACER
-       help
-         Mmiotrace traces Memory Mapped I/O access and is meant for
-         debugging and reverse engineering. It is called from the ioremap
-         implementation and works via page faults. Tracing is disabled by
-         default and can be enabled at run-time.
-
-         See Documentation/trace/mmiotrace.rst.
-         If you are not helping to develop drivers, say N.
-
 config TRACING_MAP
        bool
        depends on ARCH_HAVE_NMI_SAFE_CMPXCHG
@@ -680,16 +654,6 @@ config TRACE_EVENT_INJECT
 
          If unsure, say N.
 
-config MMIOTRACE_TEST
-       tristate "Test module for mmiotrace"
-       depends on MMIOTRACE && m
-       help
-         This is a dumb module for testing mmiotrace. It is very dangerous
-         as it will write garbage to IO memory starting at a given address.
-         However, it should be safe to use on e.g. unused portion of VRAM.
-
-         Say N, unless you absolutely know what you are doing.
-
 config TRACEPOINT_BENCHMARK
        bool "Add tracepoint that benchmarks tracepoints"
        help
@@ -736,6 +700,81 @@ config RING_BUFFER_BENCHMARK
 
          If unsure, say N.
 
+config TRACE_EVAL_MAP_FILE
+       bool "Show eval mappings for trace events"
+       depends on TRACING
+       help
+       The "print fmt" of the trace events will show the enum/sizeof names
+       instead of their values. This can cause problems for user space tools
+       that use this string to parse the raw data as user space does not know
+       how to convert the string to its value.
+
+       To fix this, there's a special macro in the kernel that can be used
+       to convert an enum/sizeof into its value. If this macro is used, then
+       the print fmt strings will be converted to their values.
+
+       If something does not get converted properly, this option can be
+       used to show what enums/sizeof the kernel tried to convert.
+
+       This option is for debugging the conversions. A file is created
+       in the tracing directory called "eval_map" that will show the
+       names matched with their values and what trace event system they
+       belong too.
+
+       Normally, the mapping of the strings to values will be freed after
+       boot up or module load. With this option, they will not be freed, as
+       they are needed for the "eval_map" file. Enabling this option will
+       increase the memory footprint of the running kernel.
+
+       If unsure, say N.
+
+config GCOV_PROFILE_FTRACE
+       bool "Enable GCOV profiling on ftrace subsystem"
+       depends on GCOV_KERNEL
+       help
+         Enable GCOV profiling on ftrace subsystem for checking
+         which functions/lines are tested.
+
+         If unsure, say N.
+
+         Note that on a kernel compiled with this config, ftrace will
+         run significantly slower.
+
+config FTRACE_SELFTEST
+       bool
+
+config FTRACE_STARTUP_TEST
+       bool "Perform a startup test on ftrace"
+       depends on GENERIC_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.
+
+config EVENT_TRACE_STARTUP_TEST
+       bool "Run selftest on trace events"
+       depends on FTRACE_STARTUP_TEST
+       default y
+       help
+         This option performs a test on all trace events in the system.
+         It basically just enables each event and runs some code that
+         will trigger events (not necessarily the event it enables)
+         This may take some time run as there are a lot of events.
+
+config EVENT_TRACE_TEST_SYSCALLS
+       bool "Run selftest on syscall events"
+       depends on EVENT_TRACE_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 RING_BUFFER_STARTUP_TEST
        bool "Ring buffer startup self test"
        depends on RING_BUFFER
@@ -759,8 +798,18 @@ config RING_BUFFER_STARTUP_TEST
 
         If unsure, say N
 
+config MMIOTRACE_TEST
+       tristate "Test module for mmiotrace"
+       depends on MMIOTRACE && m
+       help
+         This is a dumb module for testing mmiotrace. It is very dangerous
+         as it will write garbage to IO memory starting at a given address.
+         However, it should be safe to use on e.g. unused portion of VRAM.
+
+         Say N, unless you absolutely know what you are doing.
+
 config PREEMPTIRQ_DELAY_TEST
-       tristate "Preempt / IRQ disable delay thread to test latency tracers"
+       tristate "Test module to create a preempt / IRQ disable delay thread to test latency tracers"
        depends on m
        help
          Select this option to build a test module that can help test latency
@@ -774,45 +823,30 @@ config PREEMPTIRQ_DELAY_TEST
 
          If unsure, say N
 
-config TRACE_EVAL_MAP_FILE
-       bool "Show eval mappings for trace events"
-       depends on TRACING
-       help
-       The "print fmt" of the trace events will show the enum/sizeof names
-       instead of their values. This can cause problems for user space tools
-       that use this string to parse the raw data as user space does not know
-       how to convert the string to its value.
-
-       To fix this, there's a special macro in the kernel that can be used
-       to convert an enum/sizeof into its value. If this macro is used, then
-       the print fmt strings will be converted to their values.
-
-       If something does not get converted properly, this option can be
-       used to show what enums/sizeof the kernel tried to convert.
-
-       This option is for debugging the conversions. A file is created
-       in the tracing directory called "eval_map" that will show the
-       names matched with their values and what trace event system they
-       belong too.
+config SYNTH_EVENT_GEN_TEST
+       tristate "Test module for in-kernel synthetic event generation"
+       depends on HIST_TRIGGERS
+       help
+          This option creates a test module to check the base
+          functionality of in-kernel synthetic event definition and
+          generation.
 
-       Normally, the mapping of the strings to values will be freed after
-       boot up or module load. With this option, they will not be freed, as
-       they are needed for the "eval_map" file. Enabling this option will
-       increase the memory footprint of the running kernel.
+          To test, insert the module, and then check the trace buffer
+         for the generated sample events.
 
-       If unsure, say N.
+         If unsure, say N.
 
-config GCOV_PROFILE_FTRACE
-       bool "Enable GCOV profiling on ftrace subsystem"
-       depends on GCOV_KERNEL
+config KPROBE_EVENT_GEN_TEST
+       tristate "Test module for in-kernel kprobe event generation"
+       depends on KPROBE_EVENTS
        help
-         Enable GCOV profiling on ftrace subsystem for checking
-         which functions/lines are tested.
+          This option creates a test module to check the base
+          functionality of in-kernel kprobe event definition.
 
-         If unsure, say N.
+          To test, insert the module, and then check the trace buffer
+         for the generated kprobe events.
 
-         Note that on a kernel compiled with this config, ftrace will
-         run significantly slower.
+         If unsure, say N.
 
 endif # FTRACE