tracing: Support for syscall events raw records in perfcounters
authorFrederic Weisbecker <fweisbec@gmail.com>
Tue, 11 Aug 2009 18:22:53 +0000 (20:22 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Tue, 11 Aug 2009 18:35:30 +0000 (20:35 +0200)
commit19007a67a64f9b3cbbd7024f972654ebf14daade
treea993570902eb009cf6bdbc5bccfa485ff6ec960a
parentdc4ddb4c0b7348f1c9759ae8a9e7d734dc1cda82
tracing: Support for syscall events raw records in perfcounters

This bring the support for raw syscall events in perfcounters.
The arguments or exit value are saved as a raw sample using
the PERF_SAMPLE_RAW attribute in a perf counter.

Example (for now you must explicitly set the PERF_SAMPLE_RAW flag
in perf record):

perf record -e syscalls:sys_enter_open -f -F 1 -a
perf report -D

0x2cbb8 [0x50]: event: 9
.
. ... raw event: size 80 bytes
.  0000:  09 00 00 00 02 00 50 00 20 e9 39 ab 0a 7f 00 00  ......P. .9....
.  0010:  bc 14 00 00 bc 14 00 00 01 00 00 00 00 00 00 00  ...............
.  0020:  2c 00 00 00 15 01 01 00 bc 14 00 00 bc 14 00 00  ,..............
                  ^  ^  ^  ^  ^  ^  ^  ..........................
                  Event Size  struct trace_entry

.  0030:  00 00 00 00 46 98 43 02 00 00 00 00 80 08 00 00  ....F.C........
                  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
                  ptr to file name        open flags

.  0040:  00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00  ...............
                  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
.         open mode               padding

0x2cbb8 [0x50]: PERF_EVENT_SAMPLE (IP, 2): 5308: 0x7f0aab39e920 period: 1

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Jiaying Zhang <jiayingz@google.com>
Cc: Martin Bligh <mbligh@google.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Masami Hiramatsu <mhiramat@redhat.com>
kernel/trace/trace_syscalls.c