aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_sched_wakeup.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-03-04 22:15:30 -0500
committerSteven Rostedt <srostedt@redhat.com>2009-03-04 22:15:30 -0500
commite9d25fe6eaa2c720bb3ea661b660e58d54fa38bf (patch)
tree8121a9fc4021e86499c404e0b1012a36e8d0b00e /kernel/trace/trace_sched_wakeup.c
parent27d48be84477d2f0a2e2ac3738a3971dece631d5 (diff)
tracing: have latency tracers set the latency format
The latency tracers (irqsoff, preemptoff, preemptirqsoff, and wakeup) are pretty useless with the default output format. This patch makes them automatically enable the latency format when they are selected. They also record the state of the latency option, and if it was not enabled when selected, they disable it on reset. Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Diffstat (limited to 'kernel/trace/trace_sched_wakeup.c')
-rw-r--r--kernel/trace/trace_sched_wakeup.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c
index db55f7aaa640..3c5ad6b2ec84 100644
--- a/kernel/trace/trace_sched_wakeup.c
+++ b/kernel/trace/trace_sched_wakeup.c
@@ -32,6 +32,8 @@ static raw_spinlock_t wakeup_lock =
32 32
33static void __wakeup_reset(struct trace_array *tr); 33static void __wakeup_reset(struct trace_array *tr);
34 34
35static int save_lat_flag;
36
35#ifdef CONFIG_FUNCTION_TRACER 37#ifdef CONFIG_FUNCTION_TRACER
36/* 38/*
37 * irqsoff uses its own tracer function to keep the overhead down: 39 * irqsoff uses its own tracer function to keep the overhead down:
@@ -324,6 +326,9 @@ static void stop_wakeup_tracer(struct trace_array *tr)
324 326
325static int __wakeup_tracer_init(struct trace_array *tr) 327static int __wakeup_tracer_init(struct trace_array *tr)
326{ 328{
329 save_lat_flag = trace_flags & TRACE_ITER_LATENCY_FMT;
330 trace_flags |= TRACE_ITER_LATENCY_FMT;
331
327 tracing_max_latency = 0; 332 tracing_max_latency = 0;
328 wakeup_trace = tr; 333 wakeup_trace = tr;
329 start_wakeup_tracer(tr); 334 start_wakeup_tracer(tr);
@@ -347,6 +352,9 @@ static void wakeup_tracer_reset(struct trace_array *tr)
347 stop_wakeup_tracer(tr); 352 stop_wakeup_tracer(tr);
348 /* make sure we put back any tasks we are tracing */ 353 /* make sure we put back any tasks we are tracing */
349 wakeup_reset(tr); 354 wakeup_reset(tr);
355
356 if (!save_lat_flag)
357 trace_flags &= ~TRACE_ITER_LATENCY_FMT;
350} 358}
351 359
352static void wakeup_tracer_start(struct trace_array *tr) 360static void wakeup_tracer_start(struct trace_array *tr)