Kconfig (c2db8054c1eaf99983d8deee347876b01c26c2cf) | Kconfig (606576ce816603d9fe1fb453a88bc6eea16ca709) |
---|---|
1# | 1# |
2# Architectures that offer an FTRACE implementation should select HAVE_FTRACE: | 2# Architectures that offer an FUNCTION_TRACER implementation should 3# select HAVE_FUNCTION_TRACER: |
3# 4 5config NOP_TRACER 6 bool 7 | 4# 5 6config NOP_TRACER 7 bool 8 |
8config HAVE_FTRACE | 9config HAVE_FUNCTION_TRACER |
9 bool 10 select NOP_TRACER 11 12config HAVE_DYNAMIC_FTRACE 13 bool 14 15config HAVE_FTRACE_MCOUNT_RECORD 16 bool --- 6 unchanged lines hidden (view full) --- 23 24config TRACING 25 bool 26 select DEBUG_FS 27 select RING_BUFFER 28 select STACKTRACE 29 select TRACEPOINTS 30 | 10 bool 11 select NOP_TRACER 12 13config HAVE_DYNAMIC_FTRACE 14 bool 15 16config HAVE_FTRACE_MCOUNT_RECORD 17 bool --- 6 unchanged lines hidden (view full) --- 24 25config TRACING 26 bool 27 select DEBUG_FS 28 select RING_BUFFER 29 select STACKTRACE 30 select TRACEPOINTS 31 |
31config FTRACE | 32config FUNCTION_TRACER |
32 bool "Kernel Function Tracer" | 33 bool "Kernel Function Tracer" |
33 depends on HAVE_FTRACE | 34 depends on HAVE_FUNCTION_TRACER |
34 depends on DEBUG_KERNEL 35 select FRAME_POINTER 36 select TRACING 37 select CONTEXT_SWITCH_TRACER 38 help 39 Enable the kernel to trace every kernel function. This is done 40 by using a compiler feature to insert a small, 5-byte No-Operation 41 instruction to the beginning of every kernel function, which NOP --- 89 unchanged lines hidden (view full) --- 131 /debug/tracing/trace text output is readable too. 132 133 ( Note that tracing self tests can't be enabled if this tracer is 134 selected, because the self-tests are an initcall as well and that 135 would invalidate the boot trace. ) 136 137config STACK_TRACER 138 bool "Trace max stack" | 35 depends on DEBUG_KERNEL 36 select FRAME_POINTER 37 select TRACING 38 select CONTEXT_SWITCH_TRACER 39 help 40 Enable the kernel to trace every kernel function. This is done 41 by using a compiler feature to insert a small, 5-byte No-Operation 42 instruction to the beginning of every kernel function, which NOP --- 89 unchanged lines hidden (view full) --- 132 /debug/tracing/trace text output is readable too. 133 134 ( Note that tracing self tests can't be enabled if this tracer is 135 selected, because the self-tests are an initcall as well and that 136 would invalidate the boot trace. ) 137 138config STACK_TRACER 139 bool "Trace max stack" |
139 depends on HAVE_FTRACE | 140 depends on HAVE_FUNCTION_TRACER |
140 depends on DEBUG_KERNEL | 141 depends on DEBUG_KERNEL |
141 select FTRACE | 142 select FUNCTION_TRACER |
142 select STACKTRACE 143 help 144 This special tracer records the maximum stack footprint of the 145 kernel and displays it in debugfs/tracing/stack_trace. 146 147 This tracer works by hooking into every function call that the 148 kernel executes, and keeping a maximum stack depth value and 149 stack-trace saved. Because this logic has to execute in every 150 kernel function, all the time, this option can slow down the 151 kernel measurably and is generally intended for kernel 152 developers only. 153 154 Say N if unsure. 155 156config DYNAMIC_FTRACE 157 bool "enable/disable ftrace tracepoints dynamically" | 143 select STACKTRACE 144 help 145 This special tracer records the maximum stack footprint of the 146 kernel and displays it in debugfs/tracing/stack_trace. 147 148 This tracer works by hooking into every function call that the 149 kernel executes, and keeping a maximum stack depth value and 150 stack-trace saved. Because this logic has to execute in every 151 kernel function, all the time, this option can slow down the 152 kernel measurably and is generally intended for kernel 153 developers only. 154 155 Say N if unsure. 156 157config DYNAMIC_FTRACE 158 bool "enable/disable ftrace tracepoints dynamically" |
158 depends on FTRACE | 159 depends on FUNCTION_TRACER |
159 depends on HAVE_DYNAMIC_FTRACE 160 depends on DEBUG_KERNEL 161 default y 162 help 163 This option will modify all the calls to ftrace dynamically 164 (will patch them out of the binary image and replaces them 165 with a No-Op instruction) as they are called. A table is 166 created to dynamically enable them again. 167 | 160 depends on HAVE_DYNAMIC_FTRACE 161 depends on DEBUG_KERNEL 162 default y 163 help 164 This option will modify all the calls to ftrace dynamically 165 (will patch them out of the binary image and replaces them 166 with a No-Op instruction) as they are called. A table is 167 created to dynamically enable them again. 168 |
168 This way a CONFIG_FTRACE kernel is slightly larger, but otherwise | 169 This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise |
169 has native performance as long as no tracing is active. 170 171 The changes to the code are done by a kernel thread that 172 wakes up once a second and checks to see if any ftrace calls 173 were made. If so, it runs stop_machine (stops all CPUS) 174 and modifies the code to jump over the call to ftrace. 175 176config FTRACE_MCOUNT_RECORD --- 16 unchanged lines hidden --- | 170 has native performance as long as no tracing is active. 171 172 The changes to the code are done by a kernel thread that 173 wakes up once a second and checks to see if any ftrace calls 174 were made. If so, it runs stop_machine (stops all CPUS) 175 and modifies the code to jump over the call to ftrace. 176 177config FTRACE_MCOUNT_RECORD --- 16 unchanged lines hidden --- |