• Jin Yao's avatar
    perf report: Display average IPC and IPC coverage per symbol · ec6ae74f
    Jin Yao authored
    Support displaying the average IPC and IPC coverage per symbol in 'perf
    report' --tui and --stdio modes.
    
    For example,
    
     $ perf record -b ...
     $ perf report -s symbol
    
     Overhead  Symbol                           IPC   [IPC Coverage]
       39.60%  [.] __random                     2.30  [ 54.8%]
       18.02%  [.] main                         0.43  [ 54.3%]
       14.21%  [.] compute_flag                 2.29  [100.0%]
       14.16%  [.] rand                         0.36  [100.0%]
        7.06%  [.] __random_r                   2.57  [ 70.5%]
        6.85%  [.] rand@plt                     0.00  [  0.0%]
    
    Jiri Olsa <jolsa@redhat.com> provided the patch to support the --stdio
    mode. I merged Jiri's code in this patch.
    
      $ perf report -s symbol --stdio
    
        # Overhead  Symbol                       IPC   [IPC Coverage]
        # ........  ...........................  ....................
        #
          39.60%  [.] __random                   2.30  [ 54.8%]
          18.02%  [.] main                       0.43  [ 54.3%]
          14.21%  [.] compute_flag               2.29  [100.0%]
          14.16%  [.] rand                       0.36  [100.0%]
           7.06%  [.] __random_r                 2.57  [ 70.5%]
           6.85%  [.] rand@plt                   0.00  [  0.0%]
           0.02%  [k] run_timer_softirq          1.60  [ 57.2%]
    
    The columns "IPC" and "[IPC Coverage]" are automatically enabled when
    the sort-key "symbol" is specified. If the perf.data file doesn't
    contain timed LBR information, columns are filled with "-".
    
    For example,
    
      # Overhead  Symbol                       IPC   [IPC Coverage]
      # ........  ...........................  ....................
      #
          46.57%  [.] main                     -      -
          17.60%  [.] rand                     -      -
          15.84%  [.] __random_r               -      -
          11.90%  [.] __random                 -      -
           6.50%  [.] compute_flag             -      -
           1.59%  [.] rand@plt                 -      -
           0.00%  [.] _dl_relocate_object      -      -
           0.00%  [k] tlb_flush_mmu            -      -
           0.00%  [k] perf_event_mmap          -      -
           0.00%  [k] native_sched_clock       -      -
           0.00%  [k] intel_pmu_handle_irq_v4  -      -
           0.00%  [k] native_write_msr         -      -
    
     v3:
     ---
     Removed the sortkey 'ipc' from command-line. The columns "IPC"
     and "[IPC Coverage]" are automatically enabled when "symbol"
     is specified.
    
     v2:
     ---
     Merge in Jiri's patch to support stdio mode
    Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
    Reviewed-by: default avatarIngo Molnar <mingo@kernel.org>
    Reviewed-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@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1543586097-27632-4-git-send-email-yao.jin@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ec6ae74f
builtin-report.c 39.8 KB