aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2012-05-11 14:25:30 -0400
committerSteven Rostedt <rostedt@goodmis.org>2012-11-02 10:21:50 -0400
commit0fb9656d957d79dbe7ae155bb6533b1d465e4a50 (patch)
treeb1c890432c60836b7c2d267249d85e91a17b58c5 /kernel/trace/trace.c
parentc7b84ecada9a8b7fe3e6c081e70801703897ed5d (diff)
tracing: Make tracing_enabled be equal to tracing_on
The tracing_enabled file has been deprecated as it never was able to serve its purpose well. The tracing_on file has taken over. Instead of having code to keep tracing_enabled, have the tracing_enabled file just set tracing_on, and remove the tracing_enabled variable. This allows us to remove the tracing_enabled file. The reason that the remove is in a different change set and not removed here is in case we find some lonely userspace tool that requires the file to exist. Then the removal patch will get reverted, but this one will not. Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r--kernel/trace/trace.c79
1 files changed, 5 insertions, 74 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index d1d8039578ab..3c9b96aee51a 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -205,20 +205,9 @@ static struct trace_array max_tr;
205 205
206static DEFINE_PER_CPU(struct trace_array_cpu, max_tr_data); 206static DEFINE_PER_CPU(struct trace_array_cpu, max_tr_data);
207 207
208/* tracer_enabled is used to toggle activation of a tracer */
209static int tracer_enabled = 1;
210
211/**
212 * tracing_is_enabled - return tracer_enabled status
213 *
214 * This function is used by other tracers to know the status
215 * of the tracer_enabled flag. Tracers may use this function
216 * to know if it should enable their features when starting
217 * up. See irqsoff tracer for an example (start_irqsoff_tracer).
218 */
219int tracing_is_enabled(void) 208int tracing_is_enabled(void)
220{ 209{
221 return tracer_enabled; 210 return tracing_is_on();
222} 211}
223 212
224/* 213/*
@@ -1112,8 +1101,7 @@ void trace_find_cmdline(int pid, char comm[])
1112 1101
1113void tracing_record_cmdline(struct task_struct *tsk) 1102void tracing_record_cmdline(struct task_struct *tsk)
1114{ 1103{
1115 if (atomic_read(&trace_record_cmdline_disabled) || !tracer_enabled || 1104 if (atomic_read(&trace_record_cmdline_disabled) || !tracing_is_on())
1116 !tracing_is_on())
1117 return; 1105 return;
1118 1106
1119 if (!__this_cpu_read(trace_cmdline_save)) 1107 if (!__this_cpu_read(trace_cmdline_save))
@@ -2967,56 +2955,6 @@ static const struct file_operations tracing_saved_cmdlines_fops = {
2967}; 2955};
2968 2956
2969static ssize_t 2957static ssize_t
2970tracing_ctrl_read(struct file *filp, char __user *ubuf,
2971 size_t cnt, loff_t *ppos)
2972{
2973 char buf[64];
2974 int r;
2975
2976 r = sprintf(buf, "%u\n", tracer_enabled);
2977 return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
2978}
2979
2980static ssize_t
2981tracing_ctrl_write(struct file *filp, const char __user *ubuf,
2982 size_t cnt, loff_t *ppos)
2983{
2984 struct trace_array *tr = filp->private_data;
2985 unsigned long val;
2986 int ret;
2987
2988 ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
2989 if (ret)
2990 return ret;
2991
2992 val = !!val;
2993
2994 mutex_lock(&trace_types_lock);
2995 if (tracer_enabled ^ val) {
2996
2997 /* Only need to warn if this is used to change the state */
2998 WARN_ONCE(1, "tracing_enabled is deprecated. Use tracing_on");
2999
3000 if (val) {
3001 tracer_enabled = 1;
3002 if (current_trace->start)
3003 current_trace->start(tr);
3004 tracing_start();
3005 } else {
3006 tracer_enabled = 0;
3007 tracing_stop();
3008 if (current_trace->stop)
3009 current_trace->stop(tr);
3010 }
3011 }
3012 mutex_unlock(&trace_types_lock);
3013
3014 *ppos += cnt;
3015
3016 return cnt;
3017}
3018
3019static ssize_t
3020tracing_set_trace_read(struct file *filp, char __user *ubuf, 2958tracing_set_trace_read(struct file *filp, char __user *ubuf,
3021 size_t cnt, loff_t *ppos) 2959 size_t cnt, loff_t *ppos)
3022{ 2960{
@@ -3469,7 +3407,7 @@ static int tracing_wait_pipe(struct file *filp)
3469 return -EINTR; 3407 return -EINTR;
3470 3408
3471 /* 3409 /*
3472 * We block until we read something and tracing is disabled. 3410 * We block until we read something and tracing is enabled.
3473 * We still block if tracing is disabled, but we have never 3411 * We still block if tracing is disabled, but we have never
3474 * read anything. This allows a user to cat this file, and 3412 * read anything. This allows a user to cat this file, and
3475 * then enable tracing. But after we have read something, 3413 * then enable tracing. But after we have read something,
@@ -3477,7 +3415,7 @@ static int tracing_wait_pipe(struct file *filp)
3477 * 3415 *
3478 * iter->pos will be 0 if we haven't read anything. 3416 * iter->pos will be 0 if we haven't read anything.
3479 */ 3417 */
3480 if (!tracer_enabled && iter->pos) 3418 if (tracing_is_enabled() && iter->pos)
3481 break; 3419 break;
3482 } 3420 }
3483 3421
@@ -4076,13 +4014,6 @@ static const struct file_operations tracing_max_lat_fops = {
4076 .llseek = generic_file_llseek, 4014 .llseek = generic_file_llseek,
4077}; 4015};
4078 4016
4079static const struct file_operations tracing_ctrl_fops = {
4080 .open = tracing_open_generic,
4081 .read = tracing_ctrl_read,
4082 .write = tracing_ctrl_write,
4083 .llseek = generic_file_llseek,
4084};
4085
4086static const struct file_operations set_tracer_fops = { 4017static const struct file_operations set_tracer_fops = {
4087 .open = tracing_open_generic, 4018 .open = tracing_open_generic,
4088 .read = tracing_set_trace_read, 4019 .read = tracing_set_trace_read,
@@ -4858,7 +4789,7 @@ static __init int tracer_init_debugfs(void)
4858 d_tracer = tracing_init_dentry(); 4789 d_tracer = tracing_init_dentry();
4859 4790
4860 trace_create_file("tracing_enabled", 0644, d_tracer, 4791 trace_create_file("tracing_enabled", 0644, d_tracer,
4861 &global_trace, &tracing_ctrl_fops); 4792 &global_trace, &rb_simple_fops);
4862 4793
4863 trace_create_file("trace_options", 0644, d_tracer, 4794 trace_create_file("trace_options", 0644, d_tracer,
4864 NULL, &tracing_iter_fops); 4795 NULL, &tracing_iter_fops);