From: tip-bot for Jiri Olsa <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@kernel.org, kan.liang@intel.com, dsahern@gmail.com,
linux-kernel@vger.kernel.org, namhyung@kernel.org,
tglx@linutronix.de, a.p.zijlstra@chello.nl, acme@redhat.com,
jolsa@kernel.org, hpa@zytor.com
Subject: [tip:perf/core] perf stat report: Allow to override aggr_mode
Date: Fri, 18 Dec 2015 01:14:04 -0800 [thread overview]
Message-ID: <tip-89af4e05c21d68f22e07fe66940ea675615a49ed@git.kernel.org> (raw)
In-Reply-To: <1446734469-11352-19-git-send-email-jolsa@kernel.org>
Commit-ID: 89af4e05c21d68f22e07fe66940ea675615a49ed
Gitweb: http://git.kernel.org/tip/89af4e05c21d68f22e07fe66940ea675615a49ed
Author: Jiri Olsa <jolsa@kernel.org>
AuthorDate: Thu, 5 Nov 2015 15:41:02 +0100
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 17 Dec 2015 16:30:30 -0300
perf stat report: Allow to override aggr_mode
Allowing to override record aggr_mode. It's possible to use perf stat
like:
$ perf stat report -A
$ perf stat report --per-core
$ perf stat report --per-socket
To customize the recorded aggregate mode regardless what was used during
the stat record command.
Reported-by: Kan Liang <kan.liang@intel.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1446734469-11352-19-git-send-email-jolsa@kernel.org
[ Renamed 'stat' parameter to 'st' to fix 'already defined' build error with older distros (e.g. RHEL6.7) ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-stat.txt | 10 ++++++++++
tools/perf/builtin-stat.c | 17 +++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/tools/perf/Documentation/perf-stat.txt b/tools/perf/Documentation/perf-stat.txt
index 95f4928..52ef7a9 100644
--- a/tools/perf/Documentation/perf-stat.txt
+++ b/tools/perf/Documentation/perf-stat.txt
@@ -182,6 +182,16 @@ Reads and reports stat data from perf data file.
--input file::
Input file name.
+--per-socket::
+Aggregate counts per processor socket for system-wide mode measurements.
+
+--per-core::
+Aggregate counts per physical processor for system-wide mode measurements.
+
+-A::
+--no-aggr::
+Do not aggregate counts across all monitored CPUs.
+
EXAMPLES
--------
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 3ccf5a9..9805e03 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -138,6 +138,7 @@ struct perf_stat {
bool maps_allocated;
struct cpu_map *cpus;
struct thread_map *threads;
+ enum aggr_mode aggr_mode;
};
static struct perf_stat perf_stat;
@@ -1663,6 +1664,15 @@ int process_stat_config_event(struct perf_tool *tool __maybe_unused,
perf_event__read_stat_config(&stat_config, &event->stat_config);
+ if (cpu_map__empty(st->cpus)) {
+ if (st->aggr_mode != AGGR_UNSET)
+ pr_warning("warning: processing task data, aggregation mode not set\n");
+ return 0;
+ }
+
+ if (st->aggr_mode != AGGR_UNSET)
+ stat_config.aggr_mode = st->aggr_mode;
+
if (perf_stat.file.is_pipe)
perf_stat_init_aggr_mode();
else
@@ -1743,6 +1753,7 @@ static struct perf_stat perf_stat = {
.stat = perf_event__process_stat_event,
.stat_round = process_stat_round_event,
},
+ .aggr_mode = AGGR_UNSET,
};
static int __cmd_report(int argc, const char **argv)
@@ -1750,6 +1761,12 @@ static int __cmd_report(int argc, const char **argv)
struct perf_session *session;
const struct option options[] = {
OPT_STRING('i', "input", &input_name, "file", "input file name"),
+ OPT_SET_UINT(0, "per-socket", &perf_stat.aggr_mode,
+ "aggregate counts per processor socket", AGGR_SOCKET),
+ OPT_SET_UINT(0, "per-core", &perf_stat.aggr_mode,
+ "aggregate counts per physical processor core", AGGR_CORE),
+ OPT_SET_UINT('A', "no-aggr", &perf_stat.aggr_mode,
+ "disable CPU count aggregation", AGGR_NONE),
OPT_END()
};
struct stat st;
next prev parent reply other threads:[~2015-12-18 9:17 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-05 14:40 [PATCHv6 00/25] perf stat: Add scripting support Jiri Olsa
2015-11-05 14:40 ` [PATCH 01/25] perf stat: Make stat options global Jiri Olsa
2015-11-08 7:31 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 02/25] perf stat record: Add record command Jiri Olsa
2015-11-05 20:51 ` Arnaldo Carvalho de Melo
2015-11-06 8:24 ` Jiri Olsa
2015-11-06 13:33 ` Arnaldo Carvalho de Melo
2015-11-06 14:13 ` Jiri Olsa
2015-11-05 14:40 ` [PATCH 03/25] perf stat record: Initialize record features Jiri Olsa
2015-12-18 9:08 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 04/25] perf stat record: Synthesize stat record data Jiri Olsa
2015-12-18 9:09 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 05/25] perf stat record: Store events IDs in perf data file Jiri Olsa
2015-12-18 9:09 ` [tip:perf/core] perf evlist: Export id_add_fd() tip-bot for Jiri Olsa
2015-12-18 9:09 ` [tip:perf/core] perf stat record: Store events IDs in perf data file tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 06/25] perf stat record: Add pipe support for record command Jiri Olsa
2015-12-18 9:10 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 07/25] perf stat record: Write stat events on record Jiri Olsa
2015-12-18 9:10 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 08/25] perf stat record: Write stat round " Jiri Olsa
2015-12-18 9:10 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 09/25] perf stat record: Do not allow record with multiple runs mode Jiri Olsa
2015-12-18 9:11 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 10/25] perf stat record: Synthesize event update events Jiri Olsa
2015-12-18 9:11 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 11/25] perf stat report: Add report command Jiri Olsa
2015-12-18 9:11 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 12/25] perf stat report: Process cpu/threads maps Jiri Olsa
2015-12-18 9:12 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 13/25] perf stat report: Process stat config event Jiri Olsa
2015-12-18 9:12 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 14/25] perf stat report: Add support to initialize aggr_map from file Jiri Olsa
2015-12-18 9:12 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:40 ` [PATCH 15/25] perf stat report: Process stat and stat round events Jiri Olsa
2015-12-18 9:13 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:41 ` [PATCH 16/25] perf stat report: Process event update events Jiri Olsa
2015-12-18 9:13 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:41 ` [PATCH 17/25] perf stat report: Move csv_sep initialization before report command Jiri Olsa
2015-12-17 18:57 ` Arnaldo Carvalho de Melo
2015-12-17 19:46 ` Jiri Olsa
2015-12-18 9:13 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-11-05 14:41 ` [PATCH 18/25] perf stat report: Allow to override aggr_mode Jiri Olsa
2015-12-18 9:14 ` tip-bot for Jiri Olsa [this message]
2015-11-05 14:41 ` [PATCH 19/25] perf script: Process cpu/threads maps Jiri Olsa
2015-11-05 14:41 ` [PATCH 20/25] perf script: Process stat config event Jiri Olsa
2015-11-05 14:41 ` [PATCH 21/25] perf script: Add process_stat/process_stat_interval scripting interface Jiri Olsa
2015-11-05 14:41 ` [PATCH 22/25] perf script: Add stat default handlers Jiri Olsa
2015-11-05 14:41 ` [PATCH 23/25] perf script: Display stat events by default Jiri Olsa
2015-11-05 14:41 ` [PATCH 24/25] perf script: Add python support for stat events Jiri Olsa
2015-11-05 14:41 ` [PATCH 25/25] perf script: Add stat-cpi.py script Jiri Olsa
2015-12-02 13:51 ` [PATCHv6 00/25] perf stat: Add scripting support Liang, Kan
2015-12-02 13:59 ` 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=tip-89af4e05c21d68f22e07fe66940ea675615a49ed@git.kernel.org \
--to=tipbot@zytor.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=dsahern@gmail.com \
--cc=hpa@zytor.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=tglx@linutronix.de \
/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.