• Frederic Weisbecker's avatar
    tracing: Support for syscall events raw records in perfcounters · 19007a67
    Frederic Weisbecker authored
    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: default avatarFrederic 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>
    19007a67
trace_syscalls.c 10.4 KB