Skip to contentSkip to conversation

Disable tracing when current_tracer is set to "none"

PATCH Applied Ankita Garg 2 participants 2 messages Jun 9, 2008 – Jun 10, 2008 Tracing

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Disable tracing when current_tracer is set to "none"

Hi,

Found that inspite of setting the current_tracer to "none", trace from the previous trace type continued to be collected. The patch below fixes this and causes the trace to be disabled when the "none" type is selected.

Compile and boot tested the patch for functionality.

kernel/trace/trace.c +17 -5
Index: linux-2.6.25.4-rt6/kernel/trace/trace.c
===================================================================
@@ -46,11 +46,6 @@
 #define for_each_tracing_cpu(cpu)	\
 	for_each_cpu_mask_nr(cpu, tracing_buffer_mask)
 
-/* dummy trace to disable tracing */
-static struct tracer no_tracer __read_mostly = {
-	.name		= "none",
-};
-
 static int trace_alloc_page(void);
 static int trace_free_page(void);
 
@@ -139,6 +134,23 @@
 /* trace_flags holds iter_ctrl options */
 unsigned long trace_flags = TRACE_ITER_PRINT_PARENT;
 
+static notrace void no_trace_init(struct trace_array *tr)
+{
+	int cpu;
+
+	if(tr->ctrl)
+		for_each_online_cpu(cpu)
+			tracing_reset(tr->data[cpu]);
+	tracer_enabled = 0;
+}
+
+/* dummy trace to disable tracing */
+static struct tracer no_tracer __read_mostly = {
+	.name		= "none",
+	.init		= no_trace_init
+};
+
+
 /**
  * trace_wake_up - wake up tasks waiting for trace input
  *
Signature · 5 lines
Regards,
Ankita Garg ([email protected])
Linux Technology Center
IBM India Systems & Technology Labs, 
Bangalore, India   
Applied
#1 lore raw
Quoted 8 lines · Ankita Garg

Hi,

Found that inspite of setting the current_tracer to "none", trace from the previous trace type continued to be collected. The patch below fixes this and causes the trace to be disabled when the "none" type is selected.

Compile and boot tested the patch for functionality.

applied to tip/tracing/ftrace - thanks Ankita.

Ingo