From: Jiri Olsa <jolsa@redhat.com>
To: Jiri Olsa <jolsa@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Andi Kleen <ak@linux.intel.com>, David Ahern <dsahern@gmail.com>,
Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Stephane Eranian <eranian@google.com>
Subject: Re: [RFC/PATCH 00/25] perf stat: Introduce --per-task option
Date: Wed, 10 Jun 2015 20:16:22 +0200 [thread overview]
Message-ID: <20150610181622.GA32245@krava.redhat.com> (raw)
In-Reply-To: <1433959858-31858-1-git-send-email-jolsa@kernel.org>
On Wed, Jun 10, 2015 at 08:10:33PM +0200, Jiri Olsa wrote:
> hi,
> adding the possibility to display stat data per thread.
> Allowing following commands and output:
available in here:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/per_task
jirka
>
> $ perf stat -e cycles,instructions --per-task -p 12451,16173
> ^C
> Performance counter stats for process id '12451,16173':
>
> TASK-12451 77,784 cycles
> TASK-16173 64,809 cycles
> TASK-12451 14,432 instructions
> TASK-16173 14,452 instructions
>
> 3.854957122 seconds time elapsed
>
> Also woks under interval mode:
>
> $ ./perf stat -e cycles,instructions --per-task -p 16431,16173 -I 1000
> # time task counts unit events
> 1.000085816 TASK-16173 0 cycles
> 1.000085816 TASK-16431 3,358,360,926 cycles
> 1.000085816 TASK-16173 0 instructions
> 1.000085816 TASK-16431 9,062,422,086 instructions
> 2.000212262 TASK-16173 65,386 cycles
> 2.000212262 TASK-16431 3,349,355,309 cycles
> 2.000212262 TASK-16173 12,151 instructions
> 2.000212262 TASK-16431 9,039,401,422 instructions
> 3.000333402 TASK-16173 62,797 cycles
> 3.000333402 TASK-16431 3,357,140,183 cycles
> 3.000333402 TASK-16173 12,208 instructions
> 3.000333402 TASK-16431 9,058,080,762 instructions
> ^C 3.375949851 TASK-16173 0 cycles
> 3.375949851 TASK-16431 1,264,764,804 cycles
> 3.375949851 TASK-16173 0 instructions
> 3.375949851 TASK-16431 3,414,532,317 instructions
>
> thanks for comments,
> jirka
>
>
> ---
> Jiri Olsa (25):
> perf tools: Fix python code with missing stat dependency
> perf tools: Introduce xyarray__zero function
> perf tools: Add reference counting for cpu_map object
> perf tools: Add reference counting for thread_map object
> perf tools: Propagate cpu maps through the evlist
> perf tools: Propagate thread maps through the evlist
> perf tools: Make perf_evsel__(nr_)cpus generic
> perf stat: Introduce perf_counts__(alloc|free|reset) functions
> perf stat: Introduce perf_counts function
> perf stat: Use xyarray for cpu evsel counts
> perf stat: Make stats work over the thread dimension
> perf stat: Rename struct perf_counts::cpu member to values
> perf stat: Move perf_evsel__(alloc|free|reset)_stat_priv into evsel object
> perf stat: Move perf_evsel__(alloc|free)_prev_raw_counts into evsel object
> perf stat: Move perf_evlist__(alloc|free)_stats into evlist object
> perf stat: Introduce perf_evsel__alloc_stats function
> perf stat: Introduce perf_evsel__read function
> perf stat: Introduce read_counters function
> perf stat: Separate counters reading and processing
> perf stat: Move zero_per_pkg into counter process code
> perf stat: Move perf_stat initialization counter process code
> perf stat: Remove perf_evsel__read_cb function
> perf stat: Rename print_interval to process_interval
> perf stat: Introduce print_counters function
> perf stat: Introduce --per-task option
>
> tools/perf/builtin-stat.c | 388 +++++++++++++++++++++++++++++--------------------------------
> tools/perf/tests/code-reading.c | 4 +-
> tools/perf/tests/keep-tracking.c | 4 +-
> tools/perf/tests/mmap-basic.c | 4 +-
> tools/perf/tests/mmap-thread-lookup.c | 2 +-
> tools/perf/tests/openat-syscall-all-cpus.c | 8 +-
> tools/perf/tests/openat-syscall.c | 6 +-
> tools/perf/tests/switch-tracking.c | 4 +-
> tools/perf/util/cpumap.c | 24 +++-
> tools/perf/util/cpumap.h | 5 +-
> tools/perf/util/evlist.c | 61 +++++++++-
> tools/perf/util/evlist.h | 2 +
> tools/perf/util/evsel.c | 128 ++++++++++++++++----
> tools/perf/util/evsel.h | 48 ++++++--
> tools/perf/util/parse-events.c | 5 +-
> tools/perf/util/python-ext-sources | 1 +
> tools/perf/util/python.c | 4 +-
> tools/perf/util/record.c | 4 +-
> tools/perf/util/session.c | 2 +-
> tools/perf/util/stat.h | 1 +
> tools/perf/util/svghelper.c | 2 +-
> tools/perf/util/thread_map.c | 28 ++++-
> tools/perf/util/thread_map.h | 6 +-
> tools/perf/util/xyarray.c | 8 ++
> tools/perf/util/xyarray.h | 2 +
> 25 files changed, 484 insertions(+), 267 deletions(-)
prev parent reply other threads:[~2015-06-10 18:16 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-10 18:10 [RFC/PATCH 00/25] perf stat: Introduce --per-task option Jiri Olsa
2015-06-10 18:10 ` [PATCH 01/25] perf tools: Fix python code with missing stat dependency Jiri Olsa
2015-06-10 18:55 ` Arnaldo Carvalho de Melo
2015-06-10 20:23 ` Jiri Olsa
2015-06-10 20:32 ` Arnaldo Carvalho de Melo
2015-06-13 10:10 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 02/25] perf tools: Introduce xyarray__zero function Jiri Olsa
2015-06-10 19:06 ` Arnaldo Carvalho de Melo
2015-06-10 20:01 ` Jiri Olsa
2015-06-10 20:17 ` Arnaldo Carvalho de Melo
2015-06-10 18:10 ` [PATCH 03/25] perf tools: Add reference counting for cpu_map object Jiri Olsa
2015-06-10 19:07 ` Arnaldo Carvalho de Melo
2015-06-10 20:07 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 04/25] perf tools: Add reference counting for thread_map object Jiri Olsa
2015-06-10 19:08 ` Arnaldo Carvalho de Melo
2015-06-10 20:24 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 05/25] perf tools: Propagate cpu maps through the evlist Jiri Olsa
2015-06-10 19:10 ` Arnaldo Carvalho de Melo
2015-06-10 18:10 ` [PATCH 06/25] perf tools: Propagate thread " Jiri Olsa
2015-06-10 19:09 ` Arnaldo Carvalho de Melo
2015-06-10 20:25 ` Jiri Olsa
2015-06-11 13:07 ` Namhyung Kim
2015-06-12 20:13 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 07/25] perf tools: Make perf_evsel__(nr_)cpus generic Jiri Olsa
2015-06-10 18:10 ` [PATCH 08/25] perf stat: Introduce perf_counts__(alloc|free|reset) functions Jiri Olsa
2015-06-10 18:54 ` Arnaldo Carvalho de Melo
2015-06-10 20:22 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 09/25] perf stat: Introduce perf_counts function Jiri Olsa
2015-06-10 18:10 ` [PATCH 10/25] perf stat: Use xyarray for cpu evsel counts Jiri Olsa
2015-06-10 18:10 ` [PATCH 11/25] perf stat: Make stats work over the thread dimension Jiri Olsa
2015-06-10 18:10 ` [PATCH 12/25] perf stat: Rename struct perf_counts::cpu member to values Jiri Olsa
2015-06-10 18:10 ` [PATCH 13/25] perf stat: Move perf_evsel__(alloc|free|reset)_stat_priv into evsel object Jiri Olsa
2015-06-10 18:49 ` Arnaldo Carvalho de Melo
2015-06-10 20:21 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 14/25] perf stat: Move perf_evsel__(alloc|free)_prev_raw_counts " Jiri Olsa
2015-06-10 18:10 ` [PATCH 15/25] perf stat: Move perf_evlist__(alloc|free)_stats into evlist object Jiri Olsa
2015-06-10 19:13 ` Arnaldo Carvalho de Melo
2015-06-10 20:25 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 16/25] perf stat: Introduce perf_evsel__alloc_stats function Jiri Olsa
2015-06-10 18:10 ` [PATCH 17/25] perf stat: Introduce perf_evsel__read function Jiri Olsa
2015-06-10 18:10 ` [PATCH 18/25] perf stat: Introduce read_counters function Jiri Olsa
2015-06-10 18:10 ` [PATCH 19/25] perf stat: Separate counters reading and processing Jiri Olsa
2015-06-10 18:10 ` [PATCH 20/25] perf stat: Move zero_per_pkg into counter process code Jiri Olsa
2015-06-10 18:10 ` [PATCH 21/25] perf stat: Move perf_stat initialization " Jiri Olsa
2015-06-10 18:47 ` David Ahern
2015-06-10 20:21 ` Jiri Olsa
2015-06-10 18:10 ` [PATCH 22/25] perf stat: Remove perf_evsel__read_cb function Jiri Olsa
2015-06-10 18:10 ` [PATCH 23/25] perf stat: Rename print_interval to process_interval Jiri Olsa
2015-06-10 18:10 ` [PATCH 24/25] perf stat: Introduce print_counters function Jiri Olsa
2015-06-10 18:10 ` [PATCH 25/25] perf stat: Introduce --per-task option Jiri Olsa
2015-06-10 18:44 ` David Ahern
2015-06-10 18:54 ` Jiri Olsa
2015-06-10 19:28 ` Arnaldo Carvalho de Melo
2015-06-10 18:16 ` Jiri Olsa [this message]
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=20150610181622.GA32245@krava.redhat.com \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=dsahern@gmail.com \
--cc=eranian@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox