All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	David Ahern <dsahern@gmail.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Andi Kleen <andi@firstfloor.org>,
	"Jin, Yao" <yao.jin@linux.intel.com>,
	"Wangnan (F)" <wangnan0@huawei.com>,
	"Du, Changbin" <changbin.du@intel.com>
Subject: [PATCH 7/9] perf stat: Make --per-thread update shadow stats to show metrics
Date: Fri, 13 Oct 2017 10:37:34 +0200	[thread overview]
Message-ID: <20171013083736.15037-8-jolsa@kernel.org> (raw)
In-Reply-To: <20171013083736.15037-1-jolsa@kernel.org>

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

  parent reply	other threads:[~2017-10-13  8:38 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-13  8:37 [PATCH 0/9] perf tools: Assorted fixes Jiri Olsa
2017-10-13  8:37 ` [PATCH 1/9] perf tools: Fix crash in perf_hpp__reset_output_field Jiri Olsa
2017-10-20  7:18   ` [tip:perf/urgent] perf hists: Fix crash in perf_hpp__reset_output_field() tip-bot for Jiri Olsa
2017-10-13  8:37 ` [PATCH 2/9] perf tools: Add extra integrity checks to fmt_free Jiri Olsa
2017-10-20  7:19   ` [tip:perf/urgent] perf hists: Add extra integrity checks to fmt_free() tip-bot for Jiri Olsa
2017-10-13  8:37 ` [PATCH 3/9] perf tools: Rename struct perf_data_file to perf_data Jiri Olsa
2017-10-13  8:37 ` [PATCH 4/9] perf tools: Add struct perf_data_file Jiri Olsa
2017-10-13  8:37 ` [PATCH 5/9] perf tools: Add perf_data_file__write function Jiri Olsa
2017-10-13  8:37 ` [PATCH 6/9] perf stat: Move the shadow stats scale computation in perf_stat__update_shadow_stats Jiri Olsa
2017-10-13  8:37 ` Jiri Olsa [this message]
2017-10-13  8:37 ` [PATCH 8/9] perf tools: Check wether the eBPF file exists in event parsing Jiri Olsa
2017-10-20  7:19   ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2017-10-13  8:37 ` [PATCH 9/9] perf tools: Unwind properly location after REJECT Jiri Olsa
2017-10-13 19:50   ` Arnaldo Carvalho de Melo
2017-10-24 12:51     ` [PATCHv2 " Jiri Olsa
2017-10-25 14:07       ` Jiri Olsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171013083736.15037-8-jolsa@kernel.org \
    --to=jolsa@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@kernel.org \
    --cc=andi@firstfloor.org \
    --cc=changbin.du@intel.com \
    --cc=dsahern@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=wangnan0@huawei.com \
    --cc=yao.jin@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.