lkml.org 
[lkml]   [2017]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 7/9] perf stat: Make --per-thread update shadow stats to show metrics
    Date
    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

    Link: http://lkml.kernel.org/n/tip-tr8ntktxmy4qc5769ajg5u6c@git.kernel.org
    Originally-from: Jin Yao <yao.jin@linux.intel.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    ---
    tools/perf/util/stat.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
    index 7a3849851c20..c1cf42d04826 100644
    --- a/tools/perf/util/stat.c
    +++ b/tools/perf/util/stat.c
    @@ -278,6 +278,8 @@ process_counter_values(struct perf_stat_config *config, struct perf_evsel *evsel
    perf_counts_values__scale(count, config->scale, NULL);
    if (config->aggr_mode == AGGR_NONE)
    perf_stat__update_shadow_stats(evsel, count->val, cpu);
    + if (config->aggr_mode == AGGR_THREAD)
    + perf_stat__update_shadow_stats(evsel, count->val, 0);
    break;
    case AGGR_GLOBAL:
    aggr->val += count->val;
    --
    2.13.6
    \
     
     \ /
      Last update: 2017-10-13 10:39    [W:7.243 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site