perf script: Set up output options for in-stream attributes
Attributes (struct perf_event_attr) are recorded separately in the
perf.data file. perf script uses them to set up output options.
However attributes can also be in the event stream, for example when the
input is a pipe (i.e. live mode). This patch makes perf script process
in-stream attributes in the same way as on-file attributes.
Here is an example:
Before this patch:
$ perf record uname | perf script
Linux
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.015 MB (null) (~655 samples) ]
:4220 4220 [-01]
2933367.838906: cycles:
:4220 4220 [-01]
2933367.838910: cycles:
:4220 4220 [-01]
2933367.838912: cycles:
:4220 4220 [-01]
2933367.838914: cycles:
:4220 4220 [-01]
2933367.838916: cycles:
:4220 4220 [-01]
2933367.838918: cycles:
uname 4220 [-01]
2933367.838938: cycles:
uname 4220 [-01]
2933367.839207: cycles:
After this patch:
$ perf record uname | perf script
Linux
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.015 MB (null) (~655 samples) ]
:4582 4582
2933425.707724: cycles:
ffffffff81043ffa native_write_msr_safe ([kernel.kallsyms])
:4582 4582
2933425.707728: cycles:
ffffffff81043ffa native_write_msr_safe ([kernel.kallsyms])
:4582 4582
2933425.707730: cycles:
ffffffff81043ffa native_write_msr_safe ([kernel.kallsyms])
:4582 4582
2933425.707732: cycles:
ffffffff81043ffa native_write_msr_safe ([kernel.kallsyms])
:4582 4582
2933425.707734: cycles:
ffffffff81043ffa native_write_msr_safe ([kernel.kallsyms])
:4582 4582
2933425.707736: cycles:
ffffffff81309a24 memcpy ([kernel.kallsyms])
uname 4582
2933425.707760: cycles:
ffffffff8109c1c7 enqueue_task_fair ([kernel.kallsyms])
uname 4582
2933425.707978: cycles:
ffffffff81308457 clear_page_c ([kernel.kallsyms])
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1383313899-15987-3-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>