perf trace: Support interrupted syscalls
Using the same strategies as in the tmp.perf/trace2, i.e. the 'trace'
tool implemented by tglx, just updated to the current codebase.
Example:
[root@sandy linux]# perf trace usleep 1 | tail
2.003: mmap(addr: 0, len: 4096, prot: 3, flags: 34, fd:
4294967295, off: 0 ) = -
2128396288
2.017: mmap(addr: 0, len: 4096, prot: 3, flags: 34, fd:
4294967295, off: 0 ) = -
2128400384
2.029: arch_prctl(option: 4098, arg2:
140146949441280, arg3:
140146949435392, arg4: 34, arg5:
4294967295) = 0
2.084: mprotect(start:
208741634048, len: 16384, prot: 1 ) = 0
2.098: mprotect(start:
208735956992, len: 4096, prot: 1 ) = 0
2.122: munmap(addr:
140146949447680, len: 91882 ) = 0
2.359: brk(brk: 0 ) =
28987392
2.371: brk(brk:
29122560 ) =
29122560
2.490: nanosleep(rqtp:
140735694241504, rmtp: 0 ) = 0
2.507: exit_group(error_code: 0
[root@sandy linux]#
For now the timestamp and duration are always on, will be selectable.
Also if multiple threads are being monitored, its tid will appear.
The ret output continues to be interpreted a la strace.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.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 <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-ly9ulroru4my5isn0xe9gr0m@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>