• Jin Yao's avatar
    perf report: Show inline stack for stdio mode · 0db64dd0
    Jin Yao authored
    If the address belongs to an inlined function, the source information
    back to the first non-inlined function will be printed.
    
    For example:
    
    1. Show inlined function name
       perf report --stdio -g function --inline
    
         0.69%     0.00%  inline   ld-2.23.so           [.] dl_main
                |
                ---dl_main
                   |
                    --0.56%--_dl_relocate_object
                              _dl_relocate_object (inline)
                              elf_dynamic_do_Rela (inline)
    
    2. Show the file/line information
       perf report --stdio -g address --inline
    
         0.69%     0.00%  inline   ld-2.23.so           [.] _dl_start_user
                |
                ---_dl_start_user .:0
                   _dl_start rtld.c:307
                   /build/glibc-GKVZIf/glibc-2.23/elf/rtld.c:413 (inline)
                   _dl_sysdep_start dl-sysdep.c:250
                   |
                    --0.56%--dl_main rtld.c:2076
    
    Committer tests:
    
      # perf record --call-graph dwarf ~/bin/perf stat usleep 1
    
     Performance counter stats for 'usleep 1':
    
              0.443020      task-clock (msec)         #    0.449 CPUs utilized
                     1      context-switches          #    0.002 M/sec
                     0      cpu-migrations            #    0.000 K/sec
                    52      page-faults               #    0.117 M/sec
             1,049,423      cycles                    #    2.369 GHz
               801,456      instructions              #    0.76  insn per cycle
               155,609      branches                  #  351.246 M/sec
                 7,026      branch-misses             #    4.52% of all branches
    
           0.000987570 seconds time elapsed
    
      [ perf record: Woken up 2 times to write data ]
      [ perf record: Captured and wrote 0.553 MB perf.data (66 samples) ]
      # perf report --stdio --inline fs__get_mountpoint
      <SNIP>
         1.73%     0.00%  perf     perf           [.] fs__get_mountpoint
                |
                ---fs__get_mountpoint
                   fs__get_mountpoint (inline)
                   fs__check_mounts (inline)
                   __statfs
                   entry_SYSCALL_64
                   sys_statfs
                   SYSC_statfs
                   user_statfs
                   user_path_at_empty
                   filename_lookup
                   path_lookupat
                   link_path_walk
                   inode_permission
                   __inode_permission
                   kernfs_iop_permission
                   kernfs_refresh_inode
                   security_inode_notifysecctx
                   selinux_inode_notifysecctx
                   selinux_inode_setsecurity
                   security_context_to_sid
                   security_context_to_sid_core
                   string_to_context_struct
                   symcmp
    Signed-off-by: default avatarYao Jin <yao.jin@linux.intel.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: default avatarMilian Wolff <milian.wolff@kdab.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@intel.com>
    Link: http://lkml.kernel.org/r/1490474069-15823-5-git-send-email-yao.jin@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    0db64dd0
hist.c 21.8 KB