Skip to content

Commit

Permalink
tracing: remove users of tracing_reset
Browse files Browse the repository at this point in the history
The function tracing_reset is deprecated for outside use of trace.c.

The new function to reset the the buffers is tracing_reset_online_cpus.

The reason for this is that resetting the buffers while the event
trace points are active can corrupt the buffers, because they may
be writing at the time of reset. The tracing_reset_online_cpus disables
writes and waits for current writers to finish.

This patch replaces all users of tracing_reset except for the latency
tracers. Those changes require more work and will be removed in the
following patches.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Sep 4, 2009
1 parent 621968c commit 76f0d07
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 14 deletions.
4 changes: 1 addition & 3 deletions kernel/trace/kmemtrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,11 +183,9 @@ static void kmemtrace_stop_probes(void)

static int kmem_trace_init(struct trace_array *tr)
{
int cpu;
kmemtrace_array = tr;

for_each_cpu(cpu, cpu_possible_mask)
tracing_reset(tr, cpu);
tracing_reset_online_cpus(tr);

kmemtrace_start_probes();

Expand Down
7 changes: 2 additions & 5 deletions kernel/trace/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,6 @@ __acquires(kernel_lock)
if (type->selftest && !tracing_selftest_disabled) {
struct tracer *saved_tracer = current_trace;
struct trace_array *tr = &global_trace;
int i;

/*
* Run a selftest on this tracer.
Expand All @@ -559,8 +558,7 @@ __acquires(kernel_lock)
* internal tracing to verify that everything is in order.
* If we fail, we do not register this tracer.
*/
for_each_tracing_cpu(i)
tracing_reset(tr, i);
tracing_reset_online_cpus(tr);

current_trace = type;
/* the test is responsible for initializing and enabling */
Expand All @@ -573,8 +571,7 @@ __acquires(kernel_lock)
goto out;
}
/* Only reset on passing, to avoid touching corrupted buffers */
for_each_tracing_cpu(i)
tracing_reset(tr, i);
tracing_reset_online_cpus(tr);

printk(KERN_CONT "PASSED\n");
}
Expand Down
4 changes: 1 addition & 3 deletions kernel/trace/trace_boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,12 @@ void disable_boot_trace(void)

static int boot_trace_init(struct trace_array *tr)
{
int cpu;
boot_trace = tr;

if (!tr)
return 0;

for_each_cpu(cpu, cpu_possible_mask)
tracing_reset(tr, cpu);
tracing_reset_online_cpus(tr);

tracing_sched_switch_assign_trace(tr);
return 0;
Expand Down
4 changes: 1 addition & 3 deletions kernel/trace/trace_power.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,12 @@ static void power_trace_reset(struct trace_array *tr)

static int power_trace_init(struct trace_array *tr)
{
int cpu;
power_trace = tr;

trace_power_enabled = 1;
tracing_power_register();

for_each_cpu(cpu, cpu_possible_mask)
tracing_reset(tr, cpu);
tracing_reset_online_cpus(tr);
return 0;
}

Expand Down

0 comments on commit 76f0d07

Please sign in to comment.