summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-06-01 21:16:05 +0200
committerSteven Rostedt <rostedt@goodmis.org>2009-06-02 05:26:02 +0200
commit112f38a7e36e9d688b389507136bf3af3e6d159b (patch)
treee63fd02a143c57b5a786351e4f2643f2104e2346
parenttracing: remove redundant SOFTIRQ from softirq event traces (diff)
downloadlinux-112f38a7e36e9d688b389507136bf3af3e6d159b.tar.xz
linux-112f38a7e36e9d688b389507136bf3af3e6d159b.zip
tracing: make trace pipe recognize latency format flag
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>
-rw-r--r--include/linux/ftrace_event.h2
-rw-r--r--kernel/trace/trace.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index bbf40f624fc8..5c093ffc655b 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -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;
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index a3a8a87d7e91..cae34c69752f 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -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);