aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/Kconfig132
-rw-r--r--kernel/trace/Makefile13
-rw-r--r--kernel/trace/blktrace.c1549
-rw-r--r--kernel/trace/events.c14
-rw-r--r--kernel/trace/ftrace.c1133
-rw-r--r--kernel/trace/kmemtrace.c339
-rw-r--r--kernel/trace/ring_buffer.c693
-rw-r--r--kernel/trace/trace.c3034
-rw-r--r--kernel/trace/trace.h315
-rw-r--r--kernel/trace/trace_boot.c36
-rw-r--r--kernel/trace/trace_branch.c278
-rw-r--r--kernel/trace/trace_clock.c109
-rw-r--r--kernel/trace/trace_event_profile.c31
-rw-r--r--kernel/trace/trace_event_types.h173
-rw-r--r--kernel/trace/trace_events.c824
-rw-r--r--kernel/trace/trace_events_filter.c427
-rw-r--r--kernel/trace/trace_events_stage_1.h39
-rw-r--r--kernel/trace/trace_events_stage_2.h176
-rw-r--r--kernel/trace/trace_events_stage_3.h281
-rw-r--r--kernel/trace/trace_export.c102
-rw-r--r--kernel/trace/trace_functions.c369
-rw-r--r--kernel/trace/trace_functions_graph.c635
-rw-r--r--kernel/trace/trace_hw_branches.c185
-rw-r--r--kernel/trace/trace_irqsoff.c54
-rw-r--r--kernel/trace/trace_mmiotrace.c45
-rw-r--r--kernel/trace/trace_nop.c6
-rw-r--r--kernel/trace/trace_output.c1017
-rw-r--r--kernel/trace/trace_output.h71
-rw-r--r--kernel/trace/trace_power.c194
-rw-r--r--kernel/trace/trace_printk.c270
-rw-r--r--kernel/trace/trace_sched_switch.c24
-rw-r--r--kernel/trace/trace_sched_wakeup.c96
-rw-r--r--kernel/trace/trace_selftest.c169
-rw-r--r--kernel/trace/trace_stack.c19
-rw-r--r--kernel/trace/trace_stat.c326
-rw-r--r--kernel/trace/trace_stat.h31
-rw-r--r--kernel/trace/trace_syscalls.c250
-rw-r--r--kernel/trace/trace_sysprof.c23
-rw-r--r--kernel/trace/trace_workqueue.c288
39 files changed, 11277 insertions, 2493 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index 34e707e5ab8..2246141bda4 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -9,6 +9,9 @@ config USER_STACKTRACE_SUPPORT
9config NOP_TRACER 9config NOP_TRACER
10 bool 10 bool
11 11
12config HAVE_FTRACE_NMI_ENTER
13 bool
14
12config HAVE_FUNCTION_TRACER 15config HAVE_FUNCTION_TRACER
13 bool 16 bool
14 17
@@ -31,12 +34,20 @@ config HAVE_FTRACE_MCOUNT_RECORD
31config HAVE_HW_BRANCH_TRACER 34config HAVE_HW_BRANCH_TRACER
32 bool 35 bool
33 36
37config HAVE_FTRACE_SYSCALLS
38 bool
39
34config TRACER_MAX_TRACE 40config TRACER_MAX_TRACE
35 bool 41 bool
36 42
37config RING_BUFFER 43config RING_BUFFER
38 bool 44 bool
39 45
46config FTRACE_NMI_ENTER
47 bool
48 depends on HAVE_FTRACE_NMI_ENTER
49 default y
50
40config TRACING 51config TRACING
41 bool 52 bool
42 select DEBUG_FS 53 select DEBUG_FS
@@ -44,13 +55,29 @@ config TRACING
44 select STACKTRACE if STACKTRACE_SUPPORT 55 select STACKTRACE if STACKTRACE_SUPPORT
45 select TRACEPOINTS 56 select TRACEPOINTS
46 select NOP_TRACER 57 select NOP_TRACER
58 select BINARY_PRINTF
59
60#
61# Minimum requirements an architecture has to meet for us to
62# be able to offer generic tracing facilities:
63#
64config TRACING_SUPPORT
65 bool
66 # PPC32 has no irqflags tracing support, but it can use most of the
67 # tracers anyway, they were tested to build and work. Note that new
68 # exceptions to this list aren't welcomed, better implement the
69 # irqflags tracing for your architecture.
70 depends on TRACE_IRQFLAGS_SUPPORT || PPC32
71 depends on STACKTRACE_SUPPORT
72 default y
73
74if TRACING_SUPPORT
47 75
48menu "Tracers" 76menu "Tracers"
49 77
50config FUNCTION_TRACER 78config FUNCTION_TRACER
51 bool "Kernel Function Tracer" 79 bool "Kernel Function Tracer"
52 depends on HAVE_FUNCTION_TRACER 80 depends on HAVE_FUNCTION_TRACER
53 depends on DEBUG_KERNEL
54 select FRAME_POINTER 81 select FRAME_POINTER
55 select KALLSYMS 82 select KALLSYMS
56 select TRACING 83 select TRACING
@@ -72,18 +99,16 @@ config FUNCTION_GRAPH_TRACER
72 help 99 help
73 Enable the kernel to trace a function at both its return 100 Enable the kernel to trace a function at both its return
74 and its entry. 101 and its entry.
75 It's first purpose is to trace the duration of functions and 102 Its first purpose is to trace the duration of functions and
76 draw a call graph for each thread with some informations like 103 draw a call graph for each thread with some information like
77 the return value. 104 the return value. This is done by setting the current return
78 This is done by setting the current return address on the current 105 address on the current task structure into a stack of calls.
79 task structure into a stack of calls.
80 106
81config IRQSOFF_TRACER 107config IRQSOFF_TRACER
82 bool "Interrupts-off Latency Tracer" 108 bool "Interrupts-off Latency Tracer"
83 default n 109 default n
84 depends on TRACE_IRQFLAGS_SUPPORT 110 depends on TRACE_IRQFLAGS_SUPPORT
85 depends on GENERIC_TIME 111 depends on GENERIC_TIME
86 depends on DEBUG_KERNEL
87 select TRACE_IRQFLAGS 112 select TRACE_IRQFLAGS
88 select TRACING 113 select TRACING
89 select TRACER_MAX_TRACE 114 select TRACER_MAX_TRACE
@@ -106,7 +131,6 @@ config PREEMPT_TRACER
106 default n 131 default n
107 depends on GENERIC_TIME 132 depends on GENERIC_TIME
108 depends on PREEMPT 133 depends on PREEMPT
109 depends on DEBUG_KERNEL
110 select TRACING 134 select TRACING
111 select TRACER_MAX_TRACE 135 select TRACER_MAX_TRACE
112 help 136 help
@@ -127,13 +151,13 @@ config SYSPROF_TRACER
127 bool "Sysprof Tracer" 151 bool "Sysprof Tracer"
128 depends on X86 152 depends on X86
129 select TRACING 153 select TRACING
154 select CONTEXT_SWITCH_TRACER
130 help 155 help
131 This tracer provides the trace needed by the 'Sysprof' userspace 156 This tracer provides the trace needed by the 'Sysprof' userspace
132 tool. 157 tool.
133 158
134config SCHED_TRACER 159config SCHED_TRACER
135 bool "Scheduling Latency Tracer" 160 bool "Scheduling Latency Tracer"
136 depends on DEBUG_KERNEL
137 select TRACING 161 select TRACING
138 select CONTEXT_SWITCH_TRACER 162 select CONTEXT_SWITCH_TRACER
139 select TRACER_MAX_TRACE 163 select TRACER_MAX_TRACE
@@ -143,16 +167,30 @@ config SCHED_TRACER
143 167
144config CONTEXT_SWITCH_TRACER 168config CONTEXT_SWITCH_TRACER
145 bool "Trace process context switches" 169 bool "Trace process context switches"
146 depends on DEBUG_KERNEL
147 select TRACING 170 select TRACING
148 select MARKERS 171 select MARKERS
149 help 172 help
150 This tracer gets called from the context switch and records 173 This tracer gets called from the context switch and records
151 all switching of tasks. 174 all switching of tasks.
152 175
176config EVENT_TRACER
177 bool "Trace various events in the kernel"
178 select TRACING
179 help
180 This tracer hooks to various trace points in the kernel
181 allowing the user to pick and choose which trace point they
182 want to trace.
183