diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-06 14:48:41 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-06 14:48:41 -0400 |
| commit | 95107b30be68953e3a4f1c3994c2233500502ccf (patch) | |
| tree | ed1824ce842d9813f2ee8a5fa8683e0d6b13f662 /kernel/trace/Kconfig | |
| parent | 541efb7632642cab55361178d73d544f025b593c (diff) | |
| parent | a0d0c6216afad4b2b1704a72bd76bea259e07655 (diff) | |
Merge tag 'trace-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt:
"This release cycle is rather small. Just a few fixes to tracing.
The big change is the addition of the hwlat tracer. It not only
detects SMIs, but also other latency that's caused by the hardware. I
have detected some latency from large boxes having bus contention"
* tag 'trace-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
tracing: Call traceoff trigger after event is recorded
ftrace/scripts: Add helper script to bisect function tracing problem functions
tracing: Have max_latency be defined for HWLAT_TRACER as well
tracing: Add NMI tracing in hwlat detector
tracing: Have hwlat trace migrate across tracing_cpumask CPUs
tracing: Add documentation for hwlat_detector tracer
tracing: Added hardware latency tracer
ftrace: Access ret_stack->subtime only in the function profiler
function_graph: Handle TRACE_BPUTS in print_graph_comment
tracing/uprobe: Drop isdigit() check in create_trace_uprobe
Diffstat (limited to 'kernel/trace/Kconfig')
| -rw-r--r-- | kernel/trace/Kconfig | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index ba3326785ca4..2a96b063d659 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
| @@ -216,6 +216,41 @@ config SCHED_TRACER | |||
| 216 | This tracer tracks the latency of the highest priority task | 216 | This tracer tracks the latency of the highest priority task |
| 217 | to be scheduled in, starting from the point it has woken up. | 217 | to be scheduled in, starting from the point it has woken up. |
| 218 | 218 | ||
| 219 | config HWLAT_TRACER | ||
| 220 | bool "Tracer to detect hardware latencies (like SMIs)" | ||
| 221 | select GENERIC_TRACER | ||
| 222 | help | ||
| 223 | This tracer, when enabled will create one or more kernel threads, | ||
| 224 | depening on what the cpumask file is set to, which each thread | ||
| 225 | spinning in a loop looking for interruptions caused by | ||
| 226 | something other than the kernel. For example, if a | ||
| 227 | System Management Interrupt (SMI) takes a noticeable amount of | ||
| 228 | time, this tracer will detect it. This is useful for testing | ||
| 229 | if a system is reliable for Real Time tasks. | ||
| 230 | |||
| 231 | Some files are created in the tracing directory when this | ||
| 232 | is enabled: | ||
| 233 | |||
| 234 | hwlat_detector/width - time in usecs for how long to spin for | ||
| 235 | hwlat_detector/window - time in usecs between the start of each | ||
| 236 | iteration | ||
| 237 | |||
| 238 | A kernel thread is created that will spin with interrupts disabled | ||
| 239 | for "width" microseconds in every "widow" cycle. It will not spin | ||
| 240 | for "window - width" microseconds, where the system can | ||
| 241 | continue to operate. | ||
| 242 | |||
| 243 | The output will appear in the trace and trace_pipe files. | ||
| 244 | |||
| 245 | When the tracer is not running, it has no affect on the system, | ||
| 246 | but when it is running, it can cause the system to be | ||
| 247 | periodically non responsive. Do not run this tracer on a | ||
| 248 | production system. | ||
| 249 | |||
| 250 | To enable this tracer, echo in "hwlat" into the current_tracer | ||
| 251 | file. Every time a latency is greater than tracing_thresh, it will | ||
| 252 | be recorded into the ring buffer. | ||
| 253 | |||
| 219 | config ENABLE_DEFAULT_TRACERS | 254 | config ENABLE_DEFAULT_TRACERS |
| 220 | bool "Trace process context switches and events" | 255 | bool "Trace process context switches and events" |
| 221 | depends on !GENERIC_TRACER | 256 | depends on !GENERIC_TRACER |
