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 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.