aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.h
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2008-09-29 14:18:34 -0400
committerIngo Molnar <mingo@elte.hu>2008-10-14 04:39:00 -0400
commit2c4f035f6c3e8fda661eb6105aa51ef07aa71607 (patch)
tree9bac9e431789f2f551b6b6b2f86463b0b568bf19 /kernel/trace/trace.h
parent777e208d40d0953efc6fb4ab58590da3f7d8f02d (diff)
tracing/ftrace: change the type of the print_line callback
We need a kind of disambiguation when a print_line callback returns 0. _There is not enough space to print all the entry. Please flush the seq and retry. _I can't handle this type of entry This patch changes the type of this callback for better information. Also some changes have been made in this V2. _ Only relay to default functions after the print_line callback fails. _ This patch doesn't fix the issue with the broken pipe (see patch 2/4 for that) Some things are still in discussion: _ Find better names for the enum print_line_t values _ Change the type of print_trace_line into boolean. Patches to change that can be sent later. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Acked-by: Pekka Paalanen <pq@iki.fi> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r--kernel/trace/trace.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index e541a6b7e312..a921ba5d292d 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -177,6 +177,14 @@ struct trace_array {
177 struct trace_array_cpu *data[NR_CPUS]; 177 struct trace_array_cpu *data[NR_CPUS];
178}; 178};
179 179
180
181/* Return values for print_line callback */
182enum print_line_t {
183 TRACE_TYPE_PARTIAL_LINE = 0, /* Retry after flushing the seq */
184 TRACE_TYPE_HANDLED = 1,
185 TRACE_TYPE_UNHANDLED = 2 /* Relay to other output functions */
186};
187
180/* 188/*
181 * A specific tracer, represented by methods that operate on a trace array: 189 * A specific tracer, represented by methods that operate on a trace array:
182 */ 190 */
@@ -197,7 +205,7 @@ struct tracer {
197 int (*selftest)(struct tracer *trace, 205 int (*selftest)(struct tracer *trace,
198 struct trace_array *tr); 206 struct trace_array *tr);
199#endif 207#endif
200 int (*print_line)(struct trace_iterator *iter); 208 enum print_line_t (*print_line)(struct trace_iterator *iter);
201 struct tracer *next; 209 struct tracer *next;
202 int print_max; 210 int print_max;
203}; 211};