tracing: Add snapshot feature to instances
Add the "snapshot" file to the the multi-buffer instances. cd /sys/kernel/debug/tracing/instances mkdir foo ls foo buffer_size_kb buffer_total_size_kb events free_buffer set_event snapshot trace trace_clock trace_marker trace_options trace_pipe tracing_on cat foo/snapshot # tracer: nop # # # * Snapshot is freed * # # Snapshot commands: # echo 0 > snapshot : Clears and frees snapshot buffer # echo 1 > snapshot : Allocates snapshot buffer, if not already allocated. # Takes a snapshot of the main buffer. # echo 2 > snapshot : Clears snapshot buffer (but does not allocate) # (Doesn't have to be '2' works with any number that # is not a '0' or '1') Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
737223fbca
commit
ce9bae5597
|
@ -4302,9 +4302,9 @@ tracing_snapshot_write(struct file *filp, const char __user *ubuf, size_t cnt,
|
||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
/* Now, we're going to swap */
|
/* Now, we're going to swap */
|
||||||
if (iter->cpu_file == RING_BUFFER_ALL_CPUS)
|
if (iter->cpu_file == RING_BUFFER_ALL_CPUS)
|
||||||
update_max_tr(&global_trace, current, smp_processor_id());
|
update_max_tr(tr, current, smp_processor_id());
|
||||||
else
|
else
|
||||||
update_max_tr_single(&global_trace, current, iter->cpu_file);
|
update_max_tr_single(tr, current, iter->cpu_file);
|
||||||
local_irq_enable();
|
local_irq_enable();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -5533,6 +5533,11 @@ init_tracer_debugfs(struct trace_array *tr, struct dentry *d_tracer)
|
||||||
|
|
||||||
trace_create_file("tracing_on", 0644, d_tracer,
|
trace_create_file("tracing_on", 0644, d_tracer,
|
||||||
tr, &rb_simple_fops);
|
tr, &rb_simple_fops);
|
||||||
|
|
||||||
|
#ifdef CONFIG_TRACER_SNAPSHOT
|
||||||
|
trace_create_file("snapshot", 0644, d_tracer,
|
||||||
|
(void *)&tr->trace_cpu, &snapshot_fops);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static __init int tracer_init_debugfs(void)
|
static __init int tracer_init_debugfs(void)
|
||||||
|
@ -5574,11 +5579,6 @@ static __init int tracer_init_debugfs(void)
|
||||||
&ftrace_update_tot_cnt, &tracing_dyn_info_fops);
|
&ftrace_update_tot_cnt, &tracing_dyn_info_fops);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_TRACER_SNAPSHOT
|
|
||||||
trace_create_file("snapshot", 0644, d_tracer,
|
|
||||||
(void *)&global_trace.trace_cpu, &snapshot_fops);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
create_trace_instances(d_tracer);
|
create_trace_instances(d_tracer);
|
||||||
|
|
||||||
create_trace_options_dir(&global_trace);
|
create_trace_options_dir(&global_trace);
|
||||||
|
|
Loading…
Reference in New Issue