aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-03-16 21:57:17 -0400
committerSteven Rostedt <srostedt@redhat.com>2009-03-16 23:31:15 -0400
commit6adaad14d7d4d3ef31b4e2dc992b18b5da7c4eb3 (patch)
tree2c1a122a9a13c8b2cae8f0c27368a67e33804deb /kernel
parenttracing: protect reader of cmdline output (diff)
downloadlinux-dev-6adaad14d7d4d3ef31b4e2dc992b18b5da7c4eb3.tar.xz
linux-dev-6adaad14d7d4d3ef31b4e2dc992b18b5da7c4eb3.zip
tracing: stop comm recording on tracing off
Impact: fix for losing comms in trace The command lines of tasks are cached at sched switch to not need to record them at every trace point. Disabling the tracing on stops the recording of traces, but does not stop the caching of command lines. When the tracing is off the cache may overflow and cause the tracing to show incorrect tasks matching the PIDs. This patch disables prevents updates to the comm cache when the ring buffer is off. Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 2796bd2b17e4..8f89690230e6 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -797,7 +797,7 @@ void trace_find_cmdline(int pid, char comm[])
void tracing_record_cmdline(struct task_struct *tsk)
{
- if (atomic_read(&trace_record_cmdline_disabled))
+ if (atomic_read(&trace_record_cmdline_disabled) || !tracing_is_on())
return;
trace_save_cmdline(tsk);