Skip to contentSkip to conversation

tracing: A couple of cleanups for 4.4

PATCH New Steven Rostedt 1 participant 3 messages Nov 8, 2015 Tracing

lore
Share & tools
lore

Steven Rostedt

author maintainer
#0 lore raw

cover tracing: A couple of cleanups for 4.4

git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
for-next

Head SHA1: 03e88ae6b369da2a26a6e09ad165e57d210789cd

Dmitry Safonov (1):
tracing: Remove unused ftrace_cpu_disabled per cpu variable

Jiaxing Wang (1):
tracing: Make tracing work when debugfs is not configured in

----

 kernel/trace/trace.c                 | 10 +++-------
 kernel/trace/trace.h                 |  1 -
 kernel/trace/trace_functions_graph.c |  6 ------
 3 files changed, 3 insertions(+), 14 deletions(-)
author maintainer
#1 lore raw

PATCH 1/2 tracing: Make tracing work when debugfs is not configured in

From: Jiaxing Wang <[email protected]>

Currently tracing_init_dentry() returns -ENODEV when debugfs is not configured in, which causes tracefs not populated with tracing files and directories, so we will get an empty directory even after we manually mount tracefs.

We can make tracing_init_dentry() return NULL if debugfs is not configured in and can manually mount tracefs. But return -ENODEV if debugfs is configured in but not initialized or failed to create automount point as that would break backward compatibility with older tools.

---
 kernel/trace/trace.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
kernel/trace/trace.c +3 -1
index 2198a630ef58..08af79c106e1 100644
@@ -6847,7 +6847,9 @@ struct dentry *tracing_init_dentry(void)
 	if (tr->dir)
 		return NULL;
 
-	if (WARN_ON(!debugfs_initialized()))
+	if (WARN_ON(!tracefs_initialized()) ||
+		(IS_ENABLED(CONFIG_DEBUG_FS) &&
+		 WARN_ON(!debugfs_initialized())))
 		return ERR_PTR(-ENODEV);
 
 	/*
Signature · 1 line
2.6.1
author maintainer
#2 lore raw

PATCH 2/2 tracing: Remove unused ftrace_cpu_disabled per cpu variable

In reply to Steven Rostedt

From: Dmitry Safonov <[email protected]>

Since the ring buffer is lockless, there is no need to disable ftrace on CPU. And no one doing so: after commit 68179686ac67cb ("tracing: Remove ftrace_disable/enable_cpu()") ftrace_cpu_disabled stays the same after initialization, nothing changes it.
ftrace_cpu_disabled shouldn't be used by any external module since it disables only function and graph_function tracers but not any other tracer.

---
 kernel/trace/trace.c                 | 6 ------
 kernel/trace/trace.h                 | 1 -
 kernel/trace/trace_functions_graph.c | 6 ------
 3 files changed, 13 deletions(-)
kernel/trace/trace.c +0 -6
index 08af79c106e1..b11582618991 100644
@@ -100,8 +100,6 @@ static DEFINE_PER_CPU(bool, trace_cmdline_save);
  */
 static int tracing_disabled = 1;
 
-DEFINE_PER_CPU(int, ftrace_cpu_disabled);
-
 cpumask_var_t __read_mostly	tracing_buffer_mask;
 
 /*
@@ -1775,10 +1773,6 @@ trace_function(struct trace_array *tr,
 	struct ring_buffer_event *event;
 	struct ftrace_entry *entry;
 
-	/* If we are reading the ring buffer, don't trace */
-	if (unlikely(__this_cpu_read(ftrace_cpu_disabled)))
-		return;
-
 	event = trace_buffer_lock_reserve(buffer, TRACE_FN, sizeof(*entry),
 					  flags, pc);
 	if (!event)
kernel/trace/trace.h +0 -1
index dd7620802e72..919d9d07686f 100644
@@ -667,7 +667,6 @@ extern int DYN_FTRACE_TEST_NAME2(void);
 
 extern bool ring_buffer_expanded;
 extern bool tracing_selftest_disabled;
-DECLARE_PER_CPU(int, ftrace_cpu_disabled);
 
 #ifdef CONFIG_FTRACE_STARTUP_TEST
 extern int trace_selftest_startup_function(struct tracer *trace,
kernel/trace/trace_functions_graph.c +0 -6
index 92382af7a213..a663cbb84107 100644
@@ -288,9 +288,6 @@ int __trace_graph_entry(struct trace_array *tr,
 	struct ring_buffer *buffer = tr->trace_buffer.buffer;
 	struct ftrace_graph_ent_entry *entry;
 
-	if (unlikely(__this_cpu_read(ftrace_cpu_disabled)))
-		return 0;
-
 	event = trace_buffer_lock_reserve(buffer, TRACE_GRAPH_ENT,
 					  sizeof(*entry), flags, pc);
 	if (!event)
@@ -403,9 +400,6 @@ void __trace_graph_return(struct trace_array *tr,
 	struct ring_buffer *buffer = tr->trace_buffer.buffer;
 	struct ftrace_graph_ret_entry *entry;
 
-	if (unlikely(__this_cpu_read(ftrace_cpu_disabled)))
-		return;
-
 	event = trace_buffer_lock_reserve(buffer, TRACE_GRAPH_RET,
 					  sizeof(*entry), flags, pc);
 	if (!event)
Signature · 1 line
2.6.1