• Jin Yao's avatar
    perf report: Show branch type statistics for stdio mode · 2d78b189
    Jin Yao authored
    Show the branch type statistics at the end of perf report --stdio.
    
    For example:
    
      perf report --stdio
    
      COND_FWD:  28.5%
      COND_BWD:   9.4%
      CROSS_4K:   0.7%
      CROSS_2M:  14.1%
          COND:  37.9%
        UNCOND:   0.2%
           IND:   6.7%
          CALL:  26.5%
           RET:  28.7%
        SYSRET:   0.0%
    
      The branch types are:
    
       COND_FWD: conditional forward
       COND_BWD: conditional backward
           COND: conditional branch
         UNCOND: unconditional branch
            IND: indirect
           CALL: function call
         IND_CALL: indirect function call
            RET: function return
        SYSCALL: syscall
         SYSRET: syscall return
      COND_CALL: conditional function call
       COND_RET: conditional function return
    
    CROSS_4K and CROSS_2M:
    
    They are the metrics checking for branches cross 4K or 2MB pages.
    It's an approximate computing. We don't know if the area is 4K or
    2MB, so always compute both.
    
    To make the output simple, if a branch crosses 2M area, CROSS_4K
    will not be incremented.
    
    Change log
    
    v7: Since the common branch type definitions are changed, some
        tags/strings are updated accordingly.
    
    v6: Remove branch_type_stat_display() since it's moved to branch.c.
    
    v5: Remove the unnecessary sort__mode checking in
        hist_iter__branch_callback().
    
    v4: Comparing to previous version, the major changes are:
    
    Add the computing of JCC forward/JCC backward and cross page checking
    by using the from and to addresses.
    Signed-off-by: default avatarYao Jin <yao.jin@linux.intel.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1500379995-6449-7-git-send-email-yao.jin@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    2d78b189
hist.c 59.2 KB