From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
"Liang, Kan" <kan.liang@intel.com>
Subject: [PATCH 5/8] perf script: Add stat default handlers
Date: Tue, 5 Jan 2016 22:09:09 +0100 [thread overview]
Message-ID: <1452028152-26762-6-git-send-email-jolsa@kernel.org> (raw)
In-Reply-To: <1452028152-26762-1-git-send-email-jolsa@kernel.org>
Implement struct scripting_ops::(process_stat|process_stat_interval)
handlers - calling scripting handlers from stat events handlers.
Tested-by: Kan Liang <kan.liang@intel.com>
Link: http://lkml.kernel.org/n/tip-3iu6vmvuur1bntbnh43v3bib@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/builtin-script.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index a90bc0b81e70..521e3e0e7625 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -221,6 +221,9 @@ static int perf_evsel__check_attr(struct perf_evsel *evsel,
struct perf_event_attr *attr = &evsel->attr;
bool allow_user_set;
+ if (perf_header__has_feat(&session->header, HEADER_STAT))
+ return 0;
+
allow_user_set = perf_header__has_feat(&session->header,
HEADER_AUXTRACE);
@@ -674,6 +677,18 @@ static void process_event(struct perf_script *script __maybe_unused, union perf_
static struct scripting_ops *scripting_ops;
+static void process_stat(struct perf_evsel *counter, u64 time)
+{
+ if (scripting_ops && scripting_ops->process_stat)
+ scripting_ops->process_stat(&stat_config, counter, time);
+}
+
+static void process_stat_interval(u64 time)
+{
+ if (scripting_ops && scripting_ops->process_stat_interval)
+ scripting_ops->process_stat_interval(time);
+}
+
static void setup_scripting(void)
{
setup_perl_scripting();
@@ -1690,6 +1705,22 @@ static void script__setup_sample_type(struct perf_script *script)
}
}
+static int process_stat_round_event(struct perf_tool *tool __maybe_unused,
+ union perf_event *event,
+ struct perf_session *session)
+{
+ struct stat_round_event *round = &event->stat_round;
+ struct perf_evsel *counter;
+
+ evlist__for_each(session->evlist, counter) {
+ perf_stat_process_counter(&stat_config, counter);
+ process_stat(counter, round->time);
+ }
+
+ process_stat_interval(round->time);
+ return 0;
+}
+
static int process_stat_config_event(struct perf_tool *tool __maybe_unused,
union perf_event *event,
struct perf_session *session __maybe_unused)
@@ -1783,6 +1814,8 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
.auxtrace_info = perf_event__process_auxtrace_info,
.auxtrace = perf_event__process_auxtrace,
.auxtrace_error = perf_event__process_auxtrace_error,
+ .stat = perf_event__process_stat_event,
+ .stat_round = process_stat_round_event,
.stat_config = process_stat_config_event,
.thread_map = process_thread_map_event,
.cpu_map = process_cpu_map_event,
--
2.4.3
next prev parent reply other threads:[~2016-01-05 21:09 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-05 21:09 [PATCHv8 0/8] perf stat: Add scripting support Jiri Olsa
2016-01-05 21:09 ` [PATCH 1/8] perf stat record: Keep sample_type 0 for pipe session Jiri Olsa
2016-01-09 16:29 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-01-05 21:09 ` [PATCH 2/8] perf script: Process cpu/threads maps Jiri Olsa
2016-01-09 16:29 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-01-05 21:09 ` [PATCH 3/8] perf script: Process stat config event Jiri Olsa
2016-01-09 16:29 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-01-05 21:09 ` [PATCH 4/8] perf script: Add process_stat/process_stat_interval scripting interface Jiri Olsa
2016-01-09 16:30 ` [tip:perf/core] perf script: Add process_stat/ process_stat_interval " tip-bot for Jiri Olsa
2016-01-05 21:09 ` Jiri Olsa [this message]
2016-01-09 16:30 ` [tip:perf/core] perf script: Add stat default handlers tip-bot for Jiri Olsa
2016-01-05 21:09 ` [PATCH 6/8] perf script: Display stat events by default Jiri Olsa
2016-01-05 22:49 ` Arnaldo Carvalho de Melo
2016-01-06 9:36 ` Jiri Olsa
2016-01-05 21:09 ` [PATCH 7/8] perf script: Add python support for stat events Jiri Olsa
2016-01-09 16:31 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-01-05 21:09 ` [PATCH 8/8] perf script: Add stat-cpi.py script Jiri Olsa
2016-01-05 22:55 ` Arnaldo Carvalho de Melo
2016-01-05 22:39 ` [PATCHv8 0/8] perf stat: Add scripting support Arnaldo Carvalho de Melo
2016-01-06 9:09 ` Jiri Olsa
-- strict thread matches above, loose matches on Subject: below --
2015-12-22 15:43 [PATCHv7 00/25] " Jiri Olsa
2015-12-22 15:43 ` [PATCH 5/8] perf script: Add stat default handlers Jiri Olsa
2015-12-23 13:40 ` Namhyung Kim
2015-12-23 16:01 ` 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=1452028152-26762-6-git-send-email-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=kan.liang@intel.com \
--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.