tracing: make trace pipe recognize latency format flag
authorSteven Rostedt <srostedt@redhat.com>
Mon, 1 Jun 2009 19:16:05 +0000 (15:16 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 2 Jun 2009 03:26:02 +0000 (23:26 -0400)
The trace_pipe did not recognize the latency format flag and would produce
different output than the trace file. The problem was partly due that
the trace flags in the iterator was not set as well as the trace_pipe
zeros out part of the iterator (including the flags) to be able to use
the same routines as the trace file. trace_flags of the iterator should
not cause any problems when not zeroed out by for trace_pipe.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace_event.h
kernel/trace/trace.c

index bbf40f624fc8dcaeb99ce0e1c6de052d6b03be08..5c093ffc655bfd36c1579f539d5520a0ded30c15 100644 (file)
@@ -51,6 +51,7 @@ struct trace_iterator {
        int                     cpu_file;
        struct mutex            mutex;
        struct ring_buffer_iter *buffer_iter[NR_CPUS];
+       unsigned long           iter_flags;
 
        /* The below is zeroed out in pipe_read */
        struct trace_seq        seq;
@@ -58,7 +59,6 @@ struct trace_iterator {
        int                     cpu;
        u64                     ts;
 
-       unsigned long           iter_flags;
        loff_t                  pos;
        long                    idx;
 
index a3a8a87d7e91220190a0f15ac2ae47dea4674568..cae34c69752fe667e7881b202627da6b8be6c0bb 100644 (file)
@@ -2826,6 +2826,9 @@ static int tracing_open_pipe(struct inode *inode, struct file *filp)
        /* trace pipe does not show start of buffer */
        cpumask_setall(iter->started);
 
+       if (trace_flags & TRACE_ITER_LATENCY_FMT)
+               iter->iter_flags |= TRACE_FILE_LAT_FMT;
+
        iter->cpu_file = cpu_file;
        iter->tr = &global_trace;
        mutex_init(&iter->mutex);