diff options
Diffstat (limited to 'kernel/trace/Kconfig')
-rw-r--r-- | kernel/trace/Kconfig | 64 |
1 files changed, 63 insertions, 1 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 263e9e6bbd60..1cb3e1f616af 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -1,23 +1,37 @@ | |||
1 | # | 1 | # |
2 | # Architectures that offer an FTRACE implementation should select HAVE_FTRACE: | 2 | # Architectures that offer an FTRACE implementation should select HAVE_FTRACE: |
3 | # | 3 | # |
4 | |||
5 | config NOP_TRACER | ||
6 | bool | ||
7 | |||
4 | config HAVE_FTRACE | 8 | config HAVE_FTRACE |
5 | bool | 9 | bool |
10 | select NOP_TRACER | ||
6 | 11 | ||
7 | config HAVE_DYNAMIC_FTRACE | 12 | config HAVE_DYNAMIC_FTRACE |
8 | bool | 13 | bool |
9 | 14 | ||
15 | config HAVE_FTRACE_MCOUNT_RECORD | ||
16 | bool | ||
17 | |||
10 | config TRACER_MAX_TRACE | 18 | config TRACER_MAX_TRACE |
11 | bool | 19 | bool |
12 | 20 | ||
21 | config RING_BUFFER | ||
22 | bool | ||
23 | |||
13 | config TRACING | 24 | config TRACING |
14 | bool | 25 | bool |
15 | select DEBUG_FS | 26 | select DEBUG_FS |
27 | select RING_BUFFER | ||
16 | select STACKTRACE | 28 | select STACKTRACE |
29 | select TRACEPOINTS | ||
17 | 30 | ||
18 | config FTRACE | 31 | config FTRACE |
19 | bool "Kernel Function Tracer" | 32 | bool "Kernel Function Tracer" |
20 | depends on HAVE_FTRACE | 33 | depends on HAVE_FTRACE |
34 | depends on DEBUG_KERNEL | ||
21 | select FRAME_POINTER | 35 | select FRAME_POINTER |
22 | select TRACING | 36 | select TRACING |
23 | select CONTEXT_SWITCH_TRACER | 37 | select CONTEXT_SWITCH_TRACER |
@@ -36,6 +50,7 @@ config IRQSOFF_TRACER | |||
36 | depends on TRACE_IRQFLAGS_SUPPORT | 50 | depends on TRACE_IRQFLAGS_SUPPORT |
37 | depends on GENERIC_TIME | 51 | depends on GENERIC_TIME |
38 | depends on HAVE_FTRACE | 52 | depends on HAVE_FTRACE |
53 | depends on DEBUG_KERNEL | ||
39 | select TRACE_IRQFLAGS | 54 | select TRACE_IRQFLAGS |
40 | select TRACING | 55 | select TRACING |
41 | select TRACER_MAX_TRACE | 56 | select TRACER_MAX_TRACE |
@@ -59,6 +74,7 @@ config PREEMPT_TRACER | |||
59 | depends on GENERIC_TIME | 74 | depends on GENERIC_TIME |
60 | depends on PREEMPT | 75 | depends on PREEMPT |
61 | depends on HAVE_FTRACE | 76 | depends on HAVE_FTRACE |
77 | depends on DEBUG_KERNEL | ||
62 | select TRACING | 78 | select TRACING |
63 | select TRACER_MAX_TRACE | 79 | select TRACER_MAX_TRACE |
64 | help | 80 | help |
@@ -86,6 +102,7 @@ config SYSPROF_TRACER | |||
86 | config SCHED_TRACER | 102 | config SCHED_TRACER |
87 | bool "Scheduling Latency Tracer" | 103 | bool "Scheduling Latency Tracer" |
88 | depends on HAVE_FTRACE | 104 | depends on HAVE_FTRACE |
105 | depends on DEBUG_KERNEL | ||
89 | select TRACING | 106 | select TRACING |
90 | select CONTEXT_SWITCH_TRACER | 107 | select CONTEXT_SWITCH_TRACER |
91 | select TRACER_MAX_TRACE | 108 | select TRACER_MAX_TRACE |
@@ -96,16 +113,56 @@ config SCHED_TRACER | |||
96 | config CONTEXT_SWITCH_TRACER | 113 | config CONTEXT_SWITCH_TRACER |
97 | bool "Trace process context switches" | 114 | bool "Trace process context switches" |
98 | depends on HAVE_FTRACE | 115 | depends on HAVE_FTRACE |
116 | depends on DEBUG_KERNEL | ||
99 | select TRACING | 117 | select TRACING |
100 | select MARKERS | 118 | select MARKERS |
101 | help | 119 | help |
102 | This tracer gets called from the context switch and records | 120 | This tracer gets called from the context switch and records |
103 | all switching of tasks. | 121 | all switching of tasks. |
104 | 122 | ||
123 | config BOOT_TRACER | ||
124 | bool "Trace boot initcalls" | ||
125 | depends on HAVE_FTRACE | ||
126 | depends on DEBUG_KERNEL | ||
127 | select TRACING | ||
128 | help | ||
129 | This tracer helps developers to optimize boot times: it records | ||
130 | the timings of the initcalls and traces key events and the identity | ||
131 | of tasks that can cause boot delays, such as context-switches. | ||
132 | |||
133 | Its aim is to be parsed by the /scripts/bootgraph.pl tool to | ||
134 | produce pretty graphics about boot inefficiencies, giving a visual | ||
135 | representation of the delays during initcalls - but the raw | ||
136 | /debug/tracing/trace text output is readable too. | ||
137 | |||
138 | ( Note that tracing self tests can't be enabled if this tracer is | ||
139 | selected, because the self-tests are an initcall as well and that | ||
140 | would invalidate the boot trace. ) | ||
141 | |||
142 | config STACK_TRACER | ||
143 | bool "Trace max stack" | ||
144 | depends on HAVE_FTRACE | ||
145 | depends on DEBUG_KERNEL | ||
146 | select FTRACE | ||
147 | select STACKTRACE | ||
148 | help | ||
149 | This special tracer records the maximum stack footprint of the | ||
150 | kernel and displays it in debugfs/tracing/stack_trace. | ||
151 | |||
152 | This tracer works by hooking into every function call that the | ||
153 | kernel executes, and keeping a maximum stack depth value and | ||
154 | stack-trace saved. Because this logic has to execute in every | ||
155 | kernel function, all the time, this option can slow down the | ||
156 | kernel measurably and is generally intended for kernel | ||
157 | developers only. | ||
158 | |||
159 | Say N if unsure. | ||
160 | |||
105 | config DYNAMIC_FTRACE | 161 | config DYNAMIC_FTRACE |
106 | bool "enable/disable ftrace tracepoints dynamically" | 162 | bool "enable/disable ftrace tracepoints dynamically" |
107 | depends on FTRACE | 163 | depends on FTRACE |
108 | depends on HAVE_DYNAMIC_FTRACE | 164 | depends on HAVE_DYNAMIC_FTRACE |
165 | depends on DEBUG_KERNEL | ||
109 | default y | 166 | default y |
110 | help | 167 | help |
111 | This option will modify all the calls to ftrace dynamically | 168 | This option will modify all the calls to ftrace dynamically |
@@ -121,12 +178,17 @@ config DYNAMIC_FTRACE | |||
121 | were made. If so, it runs stop_machine (stops all CPUS) | 178 | were made. If so, it runs stop_machine (stops all CPUS) |
122 | and modifies the code to jump over the call to ftrace. | 179 | and modifies the code to jump over the call to ftrace. |
123 | 180 | ||
181 | config FTRACE_MCOUNT_RECORD | ||
182 | def_bool y | ||
183 | depends on DYNAMIC_FTRACE | ||
184 | depends on HAVE_FTRACE_MCOUNT_RECORD | ||
185 | |||
124 | config FTRACE_SELFTEST | 186 | config FTRACE_SELFTEST |
125 | bool | 187 | bool |
126 | 188 | ||
127 | config FTRACE_STARTUP_TEST | 189 | config FTRACE_STARTUP_TEST |
128 | bool "Perform a startup test on ftrace" | 190 | bool "Perform a startup test on ftrace" |
129 | depends on TRACING | 191 | depends on TRACING && DEBUG_KERNEL && !BOOT_TRACER |
130 | select FTRACE_SELFTEST | 192 | select FTRACE_SELFTEST |
131 | help | 193 | help |
132 | This option performs a series of startup tests on ftrace. On bootup | 194 | This option performs a series of startup tests on ftrace. On bootup |