Skip to content

Commit

Permalink
tracing: disable update max tracer while reading trace
Browse files Browse the repository at this point in the history
When reading the tracer from the trace file, updating the max latency
may corrupt the output. This patch disables the tracing of the max
latency while reading the trace file.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Sep 4, 2009
1 parent 8248ac0 commit b8de7bd
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions kernel/trace/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,9 @@ unsigned long trace_flags = TRACE_ITER_PRINT_PARENT | TRACE_ITER_PRINTK |
TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO | TRACE_ITER_SLEEP_TIME |
TRACE_ITER_GRAPH_TIME;

static int trace_stop_count;
static DEFINE_SPINLOCK(tracing_start_lock);

/**
* trace_wake_up - wake up tasks waiting for trace input
*
Expand Down Expand Up @@ -442,6 +445,9 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu)
{
struct ring_buffer *buf = tr->buffer;

if (trace_stop_count)
return;

WARN_ON_ONCE(!irqs_disabled());
__raw_spin_lock(&ftrace_max_lock);

Expand Down Expand Up @@ -469,6 +475,9 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu)
{
int ret;

if (trace_stop_count)
return;

WARN_ON_ONCE(!irqs_disabled());
__raw_spin_lock(&ftrace_max_lock);

Expand Down Expand Up @@ -685,9 +694,6 @@ static void trace_init_cmdlines(void)
cmdline_idx = 0;
}

static int trace_stop_count;
static DEFINE_SPINLOCK(tracing_start_lock);

/**
* ftrace_off_permanent - disable all ftrace code permanently
*
Expand Down

0 comments on commit b8de7bd

Please sign in to comment.