diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2008-09-29 14:18:34 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-14 04:39:00 -0400 |
commit | 2c4f035f6c3e8fda661eb6105aa51ef07aa71607 (patch) | |
tree | 9bac9e431789f2f551b6b6b2f86463b0b568bf19 /kernel/trace/trace.h | |
parent | 777e208d40d0953efc6fb4ab58590da3f7d8f02d (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.h | 10 |
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 */ | ||
182 | enum 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 | }; |