tracing: add cpu_file intialization for ftrace_dump
authorSteven Rostedt <srostedt@redhat.com>
Wed, 4 Mar 2009 23:20:36 +0000 (18:20 -0500)
committerSteven Rostedt <srostedt@redhat.com>
Wed, 4 Mar 2009 23:32:28 +0000 (18:32 -0500)
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>
kernel/trace/trace.c

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