From: tip-bot for Adrian Hunter <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, jolsa@kernel.org, kan.liang@linux.intel.com,
tglx@linutronix.de, mingo@kernel.org,
linux-kernel@vger.kernel.org, alexander.shishkin@linux.intel.com,
adrian.hunter@intel.com, peterz@infradead.org,
namhyung@kernel.org, hpa@zytor.com
Subject: [tip:perf/core] perf intel-pt: Process options for PEBS event synthesis
Date: Thu, 15 Aug 2019 02:31:32 -0700 [thread overview]
Message-ID: <tip-9e64cefe4335b0f2799956d3f3cca8bb652d950f@git.kernel.org> (raw)
In-Reply-To: <20190806084606.4021-6-alexander.shishkin@linux.intel.com>
Commit-ID: 9e64cefe4335b0f2799956d3f3cca8bb652d950f
Gitweb: https://git.kernel.org/tip/9e64cefe4335b0f2799956d3f3cca8bb652d950f
Author: Adrian Hunter <adrian.hunter@intel.com>
AuthorDate: Tue, 6 Aug 2019 11:46:04 +0300
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 14 Aug 2019 10:59:59 -0300
perf intel-pt: Process options for PEBS event synthesis
Process synth_opts.other_events and attr.aux_output to set up for
synthesizing PEBs via Intel PT events.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20190806084606.4021-6-alexander.shishkin@linux.intel.com
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
[ Fixed up libbperf clashes, i.e. some places using perf_evsel (now in libperf)
need to use instead 'evsel' (a tools/perf only abstraction) ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/arch/x86/util/intel-pt.c | 23 +++++++++++++++++++++++
tools/perf/util/intel-pt.c | 18 ++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c
index 218a4e694618..a8e633aa278a 100644
--- a/tools/perf/arch/x86/util/intel-pt.c
+++ b/tools/perf/arch/x86/util/intel-pt.c
@@ -548,6 +548,26 @@ static int intel_pt_validate_config(struct perf_pmu *intel_pt_pmu,
evsel->core.attr.config);
}
+/*
+ * Currently, there is not enough information to disambiguate different PEBS
+ * events, so only allow one.
+ */
+static bool intel_pt_too_many_aux_output(struct evlist *evlist)
+{
+ struct evsel *evsel;
+ int aux_output_cnt = 0;
+
+ evlist__for_each_entry(evlist, evsel)
+ aux_output_cnt += !!evsel->core.attr.aux_output;
+
+ if (aux_output_cnt > 1) {
+ pr_err(INTEL_PT_PMU_NAME " supports at most one event with aux-output\n");
+ return true;
+ }
+
+ return false;
+}
+
static int intel_pt_recording_options(struct auxtrace_record *itr,
struct evlist *evlist,
struct record_opts *opts)
@@ -588,6 +608,9 @@ static int intel_pt_recording_options(struct auxtrace_record *itr,
return -EINVAL;
}
+ if (intel_pt_too_many_aux_output(evlist))
+ return -EINVAL;
+
if (!opts->full_auxtrace)
return 0;
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index 4c52204868d8..ea504fa9b623 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -2894,6 +2894,22 @@ static int intel_pt_synth_events(struct intel_pt *pt,
return 0;
}
+static void intel_pt_setup_pebs_events(struct intel_pt *pt)
+{
+ struct evsel *evsel;
+
+ if (!pt->synth_opts.other_events)
+ return;
+
+ evlist__for_each_entry(pt->session->evlist, evsel) {
+ if (evsel->core.attr.aux_output && evsel->id) {
+ pt->sample_pebs = true;
+ pt->pebs_evsel = evsel;
+ return;
+ }
+ }
+}
+
static struct evsel *intel_pt_find_sched_switch(struct evlist *evlist)
{
struct evsel *evsel;
@@ -3263,6 +3279,8 @@ int intel_pt_process_auxtrace_info(union perf_event *event,
if (err)
goto err_delete_thread;
+ intel_pt_setup_pebs_events(pt);
+
err = auxtrace_queues__process_index(&pt->queues, session);
if (err)
goto err_delete_thread;
next prev parent reply other threads:[~2019-08-15 9:31 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-06 8:45 [PATCH v6 0/7] perf, intel: Add support for PEBS output to Intel PT Alexander Shishkin
2019-08-06 8:46 ` [PATCH v6 1/7] perf: Allow normal events to output AUX data Alexander Shishkin
2019-08-28 13:30 ` [tip: perf/core] " tip-bot2 for Alexander Shishkin
2019-08-06 8:46 ` [PATCH v6 2/7] perf/x86/intel: Support PEBS output to PT Alexander Shishkin
2019-08-28 13:30 ` [tip: perf/core] " tip-bot2 for Alexander Shishkin
2019-08-06 8:46 ` [PATCH v6 3/7] perf tools: Add aux_output attribute flag Alexander Shishkin
2019-08-15 9:30 ` [tip:perf/core] " tip-bot for Adrian Hunter
2019-08-06 8:46 ` [PATCH v6 4/7] perf tools: Add itrace option 'o' to synthesize aux-output events Alexander Shishkin
2019-08-15 9:30 ` [tip:perf/core] " tip-bot for Adrian Hunter
2019-08-06 8:46 ` [PATCH v6 5/7] perf intel-pt: Process options for PEBS event synthesis Alexander Shishkin
2019-08-15 9:31 ` tip-bot for Adrian Hunter [this message]
2019-08-06 8:46 ` [PATCH v6 6/7] perf tools: Add aux-output config term Alexander Shishkin
2019-08-15 9:32 ` [tip:perf/core] " tip-bot for Adrian Hunter
2019-08-06 8:46 ` [PATCH v6 7/7] perf intel-pt: Add brief documentation for PEBS via Intel PT Alexander Shishkin
2019-08-13 13:51 ` Arnaldo Carvalho de Melo
2019-08-13 14:05 ` Alexander Shishkin
2019-08-13 14:14 ` Arnaldo Carvalho de Melo
2019-08-13 16:21 ` Alexander Shishkin
2019-08-15 9:33 ` [tip:perf/core] " tip-bot for Adrian Hunter
2019-08-06 14:30 ` [PATCH v6 0/7] perf, intel: Add support for PEBS output to " Peter Zijlstra
2019-08-06 14:43 ` Arnaldo Carvalho de Melo
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-9e64cefe4335b0f2799956d3f3cca8bb652d950f@git.kernel.org \
--to=tipbot@zytor.com \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.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.