Browse Source

tracing: add cpu_file intialization for ftrace_dump

Impact: fix to ftrace_dump output corruption

The commit: b04cc6b1f6398b0e0b60d37e27ce51b4899672ec
  tracing/core: introduce per cpu tracing files

added a new field to the iterator called cpu_file. This was a handle
to differentiate between the per cpu trace output files and the
all cpu "trace" file. The all cpu "trace" file required setting this
to TRACE_PIPE_ALL_CPU.

The problem is that the ftrace_dump sets up its own iterator but was
not updated to handle this change. The result was only CPU 0 printing
out on crash and a lot of "<0>"'s also being printed.

Reported-by: Thomas Gleixner <tglx@linuxtronix.de>
Tested-by: Darren Hart <dvhtc@us.ibm.com>
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Steven Rostedt 16 years ago
parent
commit
e543ad7691
1 changed files with 2 additions and 0 deletions
  1. 2 0
      kernel/trace/trace.c

+ 2 - 0
kernel/trace/trace.c

@@ -3918,8 +3918,10 @@ void ftrace_dump(void)
 
 
 	printk(KERN_TRACE "Dumping ftrace buffer:\n");
 	printk(KERN_TRACE "Dumping ftrace buffer:\n");
 
 
+	/* Simulate the iterator */
 	iter.tr = &global_trace;
 	iter.tr = &global_trace;
 	iter.trace = current_trace;
 	iter.trace = current_trace;
+	iter.cpu_file = TRACE_PIPE_ALL_CPU;
 
 
 	/*
 	/*
 	 * We need to stop all tracing on all CPUS to read the
 	 * We need to stop all tracing on all CPUS to read the