• J
    perf stat: Make --per-thread update shadow stats to show metrics · 021b462a
    Jiri Olsa 提交于
    We should support this because it would allow easily to collect metrics
    for different threads in applications.
    
    Original patch from posted by Jin Yao in here [1].
    
    1. Current output, for example:
    
    root@skl:/tmp# perf stat --per-thread -p 21623
    ^C
     Performance counter stats for process id '21623':
    
              vmstat-21623              0.517479      task-clock (msec)         #    0.000 CPUs utilized
              vmstat-21623                     1      context-switches
              vmstat-21623                     0      cpu-migrations
              vmstat-21623                     0      page-faults
              vmstat-21623               461,306      cycles
              vmstat-21623               630,724      instructions
              vmstat-21623               136,265      branches
              vmstat-21623                 2,520      branch-misses
    
           1.444020756 seconds time elapsed
    
    root@skl:/tmp# perf stat --per-thread --metrics ipc -p 21623
    ^C
     Performance counter stats for process id '21623':
    
              vmstat-21623               631,185      inst_retired.any
              vmstat-21623               605,893      cpu_clk_unhalted.thread
    
           1.415679293 seconds time elapsed
    
    2. With this patch, the result would be:
    
    root@skl:/tmp# perf stat --per-thread -p 21623
    ^C
     Performance counter stats for process id '21623':
    
              vmstat-21623              0.533759      task-clock (msec)         #    0.000 CPUs utilized
              vmstat-21623                     1      context-switches          #    0.002 M/sec
              vmstat-21623                     0      cpu-migrations            #    0.000 K/sec
              vmstat-21623                     0      page-faults               #    0.000 K/sec
              vmstat-21623               473,896      cycles                    #    0.888 GHz
              vmstat-21623               631,072      instructions              #    1.33  insn per cycle
              vmstat-21623               136,307      branches                  #  255.372 M/sec
              vmstat-21623                 2,524      branch-misses             #    1.85% of all branches
    
           1.544862861 seconds time elapsed
    
    root@skl:/tmp# perf stat --per-thread --metrics ipc -p 21623
    ^C
     Performance counter stats for process id '21623':
    
              vmstat-21623             1,259,104      inst_retired.any          #      1.2 IPC
              vmstat-21623             1,056,756      cpu_clk_unhalted.thread
    
           2.040954502 seconds time elapsed
    
    [1] https://marc.info/?l=linux-kernel&m=150777054620511&w=2
    
    Originally-from: Jin Yao <yao.jin@linux.intel.com>
    Signed-off-by: NJiri Olsa <jolsa@kernel.org>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Changbin Du <changbin.du@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-tr8ntktxmy4qc5769ajg5u6c@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    021b462a
stat.c 9.8 KB