aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_sched_switch.c
diff options
context:
space:
mode:
authorSteven Rostedt <rostedt@goodmis.org>2008-05-22 11:49:22 -0400
committerThomas Gleixner <tglx@linutronix.de>2008-05-26 16:51:49 -0400
commit41bc8144d02028133bcd1d545023c6f49e8b2411 (patch)
tree382a6bbd0560df129c27b490aca36404edd7b19a /kernel/trace/trace_sched_switch.c
parent41c52c0db9607e59f90da7da5309489fa06e887f (diff)
ftrace: fix up cmdline recording
The new work with converting the trace hooks over to markers broke the command line recording of ftrace. This patch fixes it again. Signed-off-by: Steven Rostedt <srostedt@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/trace/trace_sched_switch.c')
-rw-r--r--kernel/trace/trace_sched_switch.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_switch.c
index 798ec0dc863..c16935d3bc5 100644
--- a/kernel/trace/trace_sched_switch.c
+++ b/kernel/trace/trace_sched_switch.c
@@ -29,6 +29,9 @@ sched_switch_func(void *private, void *__rq, struct task_struct *prev,
29 long disabled; 29 long disabled;
30 int cpu; 30 int cpu;
31 31
32 tracing_record_cmdline(prev);
33 tracing_record_cmdline(next);
34
32 if (!tracer_enabled) 35 if (!tracer_enabled)
33 return; 36 return;
34 37
@@ -63,8 +66,6 @@ sched_switch_callback(void *probe_data, void *call_data,
63 prev = va_arg(*args, typeof(prev)); 66 prev = va_arg(*args, typeof(prev));
64 next = va_arg(*args, typeof(next)); 67 next = va_arg(*args, typeof(next));
65 68
66 tracing_record_cmdline(prev);
67
68 /* 69 /*
69 * If tracer_switch_func only points to the local 70 * If tracer_switch_func only points to the local
70 * switch func, it still needs the ptr passed to it. 71 * switch func, it still needs the ptr passed to it.
@@ -213,18 +214,26 @@ void tracing_stop_sched_switch(void)
213 tracing_sched_unregister(); 214 tracing_sched_unregister();
214} 215}
215 216
217void tracing_start_cmdline_record(void)
218{
219 tracing_start_sched_switch();
220}
221
222void tracing_stop_cmdline_record(void)
223{
224 tracing_stop_sched_switch();
225}
226
216static void start_sched_trace(struct trace_array *tr) 227static void start_sched_trace(struct trace_array *tr)
217{ 228{
218 sched_switch_reset(tr); 229 sched_switch_reset(tr);
219 atomic_inc(&trace_record_cmdline_enabled);
220 tracer_enabled = 1; 230 tracer_enabled = 1;
221 tracing_start_sched_switch(); 231 tracing_start_cmdline_record();
222} 232}
223 233
224static void stop_sched_trace(struct trace_array *tr) 234static void stop_sched_trace(struct trace_array *tr)
225{ 235{
226 tracing_stop_sched_switch(); 236 tracing_stop_cmdline_record();
227 atomic_dec(&trace_record_cmdline_enabled);
228 tracer_enabled = 0; 237 tracer_enabled = 0;
229} 238}
230 239