diff options
author | Steven Rostedt <rostedt@goodmis.org> | 2008-08-01 12:26:40 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-14 04:35:15 -0400 |
commit | 2e2ca155cd2213b4f398031180fb3d399d5b7db9 (patch) | |
tree | 027295832950e23ac4edc84e43550d02e9a1acc6 /kernel/trace/trace_mmiotrace.c | |
parent | fed1939c64d2288938fdc1c367d49082da65e195 (diff) |
ftrace: new continue entry - separate out from trace_entry
Some tracers will need to work with more than one entry. In order to do this
the trace_entry structure was split into two fields. One for the start of
all entries, and one to continue an existing entry.
The trace_entry structure now has a "field" entry that consists of the previous
content of the trace_entry, and a "cont" entry that is just a string buffer
the size of the "field" entry.
Thanks to Andrew Morton for suggesting this idea.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace_mmiotrace.c')
-rw-r--r-- | kernel/trace/trace_mmiotrace.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c index b13dc19dcbb4..9b7a936f4b1f 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c | |||
@@ -174,14 +174,14 @@ print_out: | |||
174 | static int mmio_print_rw(struct trace_iterator *iter) | 174 | static int mmio_print_rw(struct trace_iterator *iter) |
175 | { | 175 | { |
176 | struct trace_entry *entry = iter->ent; | 176 | struct trace_entry *entry = iter->ent; |
177 | struct mmiotrace_rw *rw = &entry->mmiorw; | 177 | struct mmiotrace_rw *rw = &entry->field.mmiorw; |
178 | struct trace_seq *s = &iter->seq; | 178 | struct trace_seq *s = &iter->seq; |
179 | unsigned long long t = ns2usecs(entry->t); | 179 | unsigned long long t = ns2usecs(entry->field.t); |
180 | unsigned long usec_rem = do_div(t, 1000000ULL); | 180 | unsigned long usec_rem = do_div(t, 1000000ULL); |
181 | unsigned secs = (unsigned long)t; | 181 | unsigned secs = (unsigned long)t; |
182 | int ret = 1; | 182 | int ret = 1; |
183 | 183 | ||
184 | switch (entry->mmiorw.opcode) { | 184 | switch (entry->field.mmiorw.opcode) { |
185 | case MMIO_READ: | 185 | case MMIO_READ: |
186 | ret = trace_seq_printf(s, | 186 | ret = trace_seq_printf(s, |
187 | "R %d %lu.%06lu %d 0x%llx 0x%lx 0x%lx %d\n", | 187 | "R %d %lu.%06lu %d 0x%llx 0x%lx 0x%lx %d\n", |
@@ -216,14 +216,14 @@ static int mmio_print_rw(struct trace_iterator *iter) | |||
216 | static int mmio_print_map(struct trace_iterator *iter) | 216 | static int mmio_print_map(struct trace_iterator *iter) |
217 | { | 217 | { |
218 | struct trace_entry *entry = iter->ent; | 218 | struct trace_entry *entry = iter->ent; |
219 | struct mmiotrace_map *m = &entry->mmiomap; | 219 | struct mmiotrace_map *m = &entry->field.mmiomap; |
220 | struct trace_seq *s = &iter->seq; | 220 | struct trace_seq *s = &iter->seq; |
221 | unsigned long long t = ns2usecs(entry->t); | 221 | unsigned long long t = ns2usecs(entry->field.t); |
222 | unsigned long usec_rem = do_div(t, 1000000ULL); | 222 | unsigned long usec_rem = do_div(t, 1000000ULL); |
223 | unsigned secs = (unsigned long)t; | 223 | unsigned secs = (unsigned long)t; |
224 | int ret = 1; | 224 | int ret = 1; |
225 | 225 | ||
226 | switch (entry->mmiorw.opcode) { | 226 | switch (entry->field.mmiorw.opcode) { |
227 | case MMIO_PROBE: | 227 | case MMIO_PROBE: |
228 | ret = trace_seq_printf(s, | 228 | ret = trace_seq_printf(s, |
229 | "MAP %lu.%06lu %d 0x%llx 0x%lx 0x%lx 0x%lx %d\n", | 229 | "MAP %lu.%06lu %d 0x%llx 0x%lx 0x%lx 0x%lx %d\n", |