summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace.c16
-rw-r--r--kernel/trace/trace.h1
-rw-r--r--kernel/trace/trace_functions_graph.c6
3 files changed, 9 insertions, 14 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 2198a630ef58..87fb9801bd9e 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -100,8 +100,6 @@ static DEFINE_PER_CPU(bool, trace_cmdline_save);
100 */ 100 */
101static int tracing_disabled = 1; 101static int tracing_disabled = 1;
102 102
103DEFINE_PER_CPU(int, ftrace_cpu_disabled);
104
105cpumask_var_t __read_mostly tracing_buffer_mask; 103cpumask_var_t __read_mostly tracing_buffer_mask;
106 104
107/* 105/*
@@ -1775,10 +1773,6 @@ trace_function(struct trace_array *tr,
1775 struct ring_buffer_event *event; 1773 struct ring_buffer_event *event;
1776 struct ftrace_entry *entry; 1774 struct ftrace_entry *entry;
1777 1775
1778 /* If we are reading the ring buffer, don't trace */
1779 if (unlikely(__this_cpu_read(ftrace_cpu_disabled)))
1780 return;
1781
1782 event = trace_buffer_lock_reserve(buffer, TRACE_FN, sizeof(*entry), 1776 event = trace_buffer_lock_reserve(buffer, TRACE_FN, sizeof(*entry),
1783 flags, pc); 1777 flags, pc);
1784 if (!event) 1778 if (!event)
@@ -4554,6 +4548,8 @@ out:
4554 return ret; 4548 return ret;
4555} 4549}
4556 4550
4551#ifdef CONFIG_TRACER_MAX_TRACE
4552
4557static ssize_t 4553static ssize_t
4558tracing_max_lat_read(struct file *filp, char __user *ubuf, 4554tracing_max_lat_read(struct file *filp, char __user *ubuf,
4559 size_t cnt, loff_t *ppos) 4555 size_t cnt, loff_t *ppos)
@@ -4568,6 +4564,8 @@ tracing_max_lat_write(struct file *filp, const char __user *ubuf,
4568 return tracing_nsecs_write(filp->private_data, ubuf, cnt, ppos); 4564 return tracing_nsecs_write(filp->private_data, ubuf, cnt, ppos);
4569} 4565}
4570 4566
4567#endif
4568
4571static int tracing_open_pipe(struct inode *inode, struct file *filp) 4569static int tracing_open_pipe(struct inode *inode, struct file *filp)
4572{ 4570{
4573 struct trace_array *tr = inode->i_private; 4571 struct trace_array *tr = inode->i_private;
@@ -5469,12 +5467,14 @@ static const struct file_operations tracing_thresh_fops = {
5469 .llseek = generic_file_llseek, 5467 .llseek = generic_file_llseek,
5470}; 5468};
5471 5469
5470#ifdef CONFIG_TRACER_MAX_TRACE
5472static const struct file_operations tracing_max_lat_fops = { 5471static const struct file_operations tracing_max_lat_fops = {
5473 .open = tracing_open_generic, 5472 .open = tracing_open_generic,
5474 .read = tracing_max_lat_read, 5473 .read = tracing_max_lat_read,
5475 .write = tracing_max_lat_write, 5474 .write = tracing_max_lat_write,
5476 .llseek = generic_file_llseek, 5475 .llseek = generic_file_llseek,
5477}; 5476};
5477#endif
5478 5478
5479static const struct file_operations set_tracer_fops = { 5479static const struct file_operations set_tracer_fops = {
5480 .open = tracing_open_generic, 5480 .open = tracing_open_generic,
@@ -6847,7 +6847,9 @@ struct dentry *tracing_init_dentry(void)
6847 if (tr->dir) 6847 if (tr->dir)
6848 return NULL; 6848 return NULL;
6849 6849
6850 if (WARN_ON(!debugfs_initialized())) 6850 if (WARN_ON(!tracefs_initialized()) ||
6851 (IS_ENABLED(CONFIG_DEBUG_FS) &&
6852 WARN_ON(!debugfs_initialized())))
6851 return ERR_PTR(-ENODEV); 6853 return ERR_PTR(-ENODEV);
6852 6854
6853 /* 6855 /*
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index dd7620802e72..919d9d07686f 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -667,7 +667,6 @@ extern int DYN_FTRACE_TEST_NAME2(void);
667 667
668extern bool ring_buffer_expanded; 668extern bool ring_buffer_expanded;
669extern bool tracing_selftest_disabled; 669extern bool tracing_selftest_disabled;
670DECLARE_PER_CPU(int, ftrace_cpu_disabled);
671 670
672#ifdef CONFIG_FTRACE_STARTUP_TEST 671#ifdef CONFIG_FTRACE_STARTUP_TEST
673extern int trace_selftest_startup_function(struct tracer *trace, 672extern int trace_selftest_startup_function(struct tracer *trace,
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 92382af7a213..a663cbb84107 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -288,9 +288,6 @@ int __trace_graph_entry(struct trace_array *tr,
288 struct ring_buffer *buffer = tr->trace_buffer.buffer; 288 struct ring_buffer *buffer = tr->trace_buffer.buffer;
289 struct ftrace_graph_ent_entry *entry; 289 struct ftrace_graph_ent_entry *entry;
290 290
291 if (unlikely(__this_cpu_read(ftrace_cpu_disabled)))
292 return 0;
293
294 event = trace_buffer_lock_reserve(buffer, TRACE_GRAPH_ENT, 291 event = trace_buffer_lock_reserve(buffer, TRACE_GRAPH_ENT,
295 sizeof(*entry), flags, pc); 292 sizeof(*entry), flags, pc);
296 if (!event) 293 if (!event)
@@ -403,9 +400,6 @@ void __trace_graph_return(struct trace_array *tr,
403 struct ring_buffer *buffer = tr->trace_buffer.buffer; 400 struct ring_buffer *buffer = tr->trace_buffer.buffer;
404 struct ftrace_graph_ret_entry *entry; 401 struct ftrace_graph_ret_entry *entry;
405 402
406 if (unlikely(__this_cpu_read(ftrace_cpu_disabled)))
407 return;
408
409 event = trace_buffer_lock_reserve(buffer, TRACE_GRAPH_RET, 403 event = trace_buffer_lock_reserve(buffer, TRACE_GRAPH_RET,
410 sizeof(*entry), flags, pc); 404 sizeof(*entry), flags, pc);
411 if (!event) 405 if (!event)