• Adrian Hunter's avatar
    perf intel-pt: Implement decoder flags for trace begin / end · bea63857
    Adrian Hunter authored
    Have the Intel PT decoder implement the new Intel PT decoder flags for
    trace begin / end.
    
    Previously, the decoder would indicate begin / end by a branch from / to
    zero. That hides useful information, in particular when a trace ends
    with a call. That happens when using address filters, for example:
    
      $ perf record -e intel_pt/cyc,mtc_period=0,noretcomp/u --filter='filter main @ /bin/uname ' uname Linux
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.031 MB perf.data ]
    
    Before:
    
      $ perf script --itrace=cre -Ftime,flags,ip,sym,symoff,addr --ns
       7249.622183310:   tr strt         0 [unknown] =>   401590 main+0x0
       7249.622183311:   call       4015b9 main+0x29 =>        0 [unknown]
       7249.622183711:   tr strt         0 [unknown] =>   4015be main+0x2e
       7249.622183714:   call       4015c8 main+0x38 =>        0 [unknown]
       7249.622247731:   tr strt         0 [unknown] =>   4015cd main+0x3d
       7249.622247760:   call       4015d7 main+0x47 =>        0 [unknown]
       7249.622248340:   tr strt         0 [unknown] =>   4015dc main+0x4c
       7249.622248341:   call       4015e1 main+0x51 =>        0 [unknown]
       7249.622248681:   tr strt         0 [unknown] =>   4015e6 main+0x56
       7249.622248682:   call       4015eb main+0x5b =>        0 [unknown]
       7249.622248970:   tr strt         0 [unknown] =>   4015f0 main+0x60
       7249.622248971:   call       401612 main+0x82 =>        0 [unknown]
       7249.622249757:   tr strt         0 [unknown] =>   401617 main+0x87
       7249.622249770:   call       401847 main+0x2b7 =>        0 [unknown]
       7249.622250606:   tr strt         0 [unknown] =>   40184c main+0x2bc
       7249.622250612:   call       4019bf main+0x42f =>        0 [unknown]
       7249.622256823:   tr strt         0 [unknown] =>   4019c4 main+0x434
       7249.622256863:   call       4019f5 main+0x465 =>        0 [unknown]
       7249.622264217:   tr strt         0 [unknown] =>   4019fa main+0x46a
       7249.622264235:   call       401832 main+0x2a2 =>        0 [unknown]
    
    After:
    
      $ perf script --itrace=cre -Ftime,flags,ip,sym,symoff,addr --ns
       7249.622183310:   tr strt              0 [unknown] =>   401590 main+0x0
       7249.622183311:   tr end  call    4015b9 main+0x29 =>   401ef0 set_program_name+0x0
       7249.622183711:   tr strt              0 [unknown] =>   4015be main+0x2e
       7249.622183714:   tr end  call    4015c8 main+0x38 =>   4014b0 setlocale@plt+0x0
       7249.622247731:   tr strt              0 [unknown] =>   4015cd main+0x3d
       7249.622247760:   tr end  call    4015d7 main+0x47 =>   4012d0 bindtextdomain@plt+0x0
       7249.622248340:   tr strt              0 [unknown] =>   4015dc main+0x4c
       7249.622248341:   tr end  call    4015e1 main+0x51 =>   4012b0 textdomain@plt+0x0
       7249.622248681:   tr strt              0 [unknown] =>   4015e6 main+0x56
       7249.622248682:   tr end  call    4015eb main+0x5b =>   404340 atexit+0x0
       7249.622248970:   tr strt              0 [unknown] =>   4015f0 main+0x60
       7249.622248971:   tr end  call    401612 main+0x82 =>   401320 getopt_long@plt+0x0
       7249.622249757:   tr strt              0 [unknown] =>   401617 main+0x87
       7249.622249770:   tr end  call    401847 main+0x2b7 =>   401360 uname@plt+0x0
       7249.622250606:   tr strt              0 [unknown] =>   40184c main+0x2bc
       7249.622250612:   tr end  call    4019bf main+0x42f =>   401b10 print_element+0x0
       7249.622256823:   tr strt              0 [unknown] =>   4019c4 main+0x434
       7249.622256863:   tr end  call    4019f5 main+0x465 =>   401340 __overflow@plt+0x0
       7249.622264217:   tr strt              0 [unknown] =>   4019fa main+0x46a
       7249.622264235:   tr end  call    401832 main+0x2a2 =>   401520 exit@plt+0x0
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/r/20180920130048.31432-7-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    bea63857
intel-pt-decoder.c 65.8 KB