• Arnaldo Carvalho de Melo's avatar
    perf trace: Support interrupted syscalls · 752fde44
    Arnaldo Carvalho de Melo authored
    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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    752fde44
util.h 6.12 KB