diff options
author | Zhaolei <zhaolei@cn.fujitsu.com> | 2009-05-25 06:11:59 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2009-05-25 21:03:21 -0400 |
commit | b11c53e12f94a46b50bccc7a1a953d7ca1d54a31 (patch) | |
tree | a0d658e31ffd7f05834c6026874cd4120a35dd29 /kernel/trace/Kconfig | |
parent | 29fcefba8a2f0fea11e2b721fe174a1832801284 (diff) |
ftrace: Add task_comm support for trace_event
If we enable a trace event alone without any tracer running (such as
function tracer, sched switch tracer, etc...) it can't output enough
task command information.
We need to use the tracing_{start/stop}_cmdline_record() helpers
which are designed to keep track of cmdlines for any tasks that
were scheduled during the tracing.
Before this patch:
# echo 1 > debugfs/tracing/events/sched/sched_switch/enable
# cat debugfs/tracing/trace
# tracer: nop
#
# TASK-PID CPU# TIMESTAMP FUNCTION
# | | | | |
<...>-2289 [000] 526276.724790: sched_switch: task bash:2289 [120] ==> sshd:2287 [120]
<...>-2287 [000] 526276.725231: sched_switch: task sshd:2287 [120] ==> bash:2289 [120]
<...>-2289 [000] 526276.725452: sched_switch: task bash:2289 [120] ==> sshd:2287 [120]
<...>-2287 [000] 526276.727181: sched_switch: task sshd:2287 [120] ==> swapper:0 [140]
<idle>-0 [000] 526277.032734: sched_switch: task swapper:0 [140] ==> events/0:5 [115]
<...>-5 [000] 526277.032782: sched_switch: task events/0:5 [115] ==> swapper:0 [140]
...
After this patch:
# tracer: nop
#
# TASK-PID CPU# TIMESTAMP FUNCTION
# | | | | |
bash-2269 [000] 527347.989229: sched_switch: task bash:2269 [120] ==> sshd:2267 [120]
sshd-2267 [000] 527347.990960: sched_switch: task sshd:2267 [120] ==> bash:2269 [120]
bash-2269 [000] 527347.991143: sched_switch: task bash:2269 [120] ==> sshd:2267 [120]
sshd-2267 [000] 527347.992959: sched_switch: task sshd:2267 [120] ==> swapper:0 [140]
<idle>-0 [000] 527348.531989: sched_switch: task swapper:0 [140] ==> events/0:5 [115]
events/0-5 [000] 527348.532115: sched_switch: task events/0:5 [115] ==> swapper:0 [140]
...
Changelog:
v1->v2: Update Kconfig to select CONTEXT_SWITCH_TRACER in
ENABLE_EVENT_TRACING
v2->v3: v2 can solve problem that was caused by config EVENT_TRACING
alone, but when CONFIG_FTRACE is off and CONFIG_TRACING is
selected by other config, compile fail happened again.
This version solves it.
[ Impact: fix incomplete output of event tracing ]
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <4A14FDFE.2080402@cn.fujitsu.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'kernel/trace/Kconfig')
-rw-r--r-- | kernel/trace/Kconfig | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index f61be3015783..a508b9d2adb8 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -49,6 +49,11 @@ config FTRACE_NMI_ENTER | |||
49 | default y | 49 | default y |
50 | 50 | ||
51 | config EVENT_TRACING | 51 | config EVENT_TRACING |
52 | select CONTEXT_SWITCH_TRACER | ||
53 | bool | ||
54 | |||
55 | config CONTEXT_SWITCH_TRACER | ||
56 | select MARKERS | ||
52 | bool | 57 | bool |
53 | 58 | ||
54 | config TRACING | 59 | config TRACING |
@@ -176,10 +181,10 @@ config SCHED_TRACER | |||
176 | This tracer tracks the latency of the highest priority task | 181 | This tracer tracks the latency of the highest priority task |
177 | to be scheduled in, starting from the point it has woken up. | 182 | to be scheduled in, starting from the point it has woken up. |
178 | 183 | ||
179 | config CONTEXT_SWITCH_TRACER | 184 | config ENABLE_CONTEXT_SWITCH_TRACER |
180 | bool "Trace process context switches" | 185 | bool "Trace process context switches" |
181 | select TRACING | 186 | select TRACING |
182 | select MARKERS | 187 | select CONTEXT_SWITCH_TRACER |
183 | help | 188 | help |
184 | This tracer gets called from the context switch and records | 189 | This tracer gets called from the context switch and records |
185 | all switching of tasks. | 190 | all switching of tasks. |