diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-11-12 21:47:31 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-11-12 21:48:38 +0100 |
commit | d969135aae1434547f41853f0e8eaa622e8b8816 (patch) | |
tree | 2b790ec0967620423e227c49873f06812b325037 /tools/lib/traceevent/event-parse.c | |
parent | Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/... (diff) | |
parent | tools lib traceevent: Add direct access to dynamic arrays (diff) | |
download | linux-d969135aae1434547f41853f0e8eaa622e8b8816.tar.xz linux-d969135aae1434547f41853f0e8eaa622e8b8816.zip |
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
* Add summary only option to 'perf trace', suppressing the decoding of
events, from David Ahern
* 'perf trace --summary' formatting simplifications, from Pekka Emberg.
* Beautify fifth argument of mmap() as fd, in 'perf trace', from Namhyung Kim.
* Fix segfault on perf trace -i perf.data, from Namhyung Kim.
* Fix segfault with --no-mmap-pages, from David Ahern.
* Round mmap pages to power 2, from David Ahern.
* Add direct access to dynamic arrays in libtraceevent, from Steven Rostedt.
* Handle throttle events in 'object code reading' test, fix from Adrian Hunter.
* Prevent condition that all sort keys are elided, fix from Namhyung Kim.
* Synthesize non-exec MMAP records when --data used, allowing the resolution of
data addresses to symbols (global variables, etc).
* Don't force a refresh during progress update in the TUI, greatly reducing
startup costs, fix from Patrick Palka.
* Fix sw clock event period test wrt not checking if using > max_sample_freq.
* Code cleanups by David Ahern and Adrian Hunter.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/lib/traceevent/event-parse.c')
-rw-r--r-- | tools/lib/traceevent/event-parse.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c index 8f450adaa9c2..0362d575de7d 100644 --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c @@ -3435,6 +3435,19 @@ eval_num_arg(void *data, int size, struct event_format *event, struct print_arg goto out_warning_op; } break; + case PRINT_DYNAMIC_ARRAY: + /* Without [], we pass the address to the dynamic data */ + offset = pevent_read_number(pevent, + data + arg->dynarray.field->offset, + arg->dynarray.field->size); + /* + * The actual length of the dynamic array is stored + * in the top half of the field, and the offset + * is in the bottom half of the 32 bit field. + */ + offset &= 0xffff; + val = (unsigned long long)(data + offset); + break; default: /* not sure what to do there */ return 0; } |