From: Adrian Hunter <adrian.hunter@intel.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>, Andi Kleen <ak@linux.intel.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 08/11] perf intel-pt: Time filter logged perf events
Date: Thu, 9 Jul 2020 20:36:25 +0300 [thread overview]
Message-ID: <20200709173628.5613-9-adrian.hunter@intel.com> (raw)
In-Reply-To: <20200709173628.5613-1-adrian.hunter@intel.com>
Change the debug logging (when used with the --time option) to time filter
logged perf events, but allow that to be overridden by using "d2" instead
of plain "d".
By default that can greatly reduce the size of the log file.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
tools/perf/Documentation/perf-intel-pt.txt | 3 +++
tools/perf/util/intel-pt.c | 20 +++++++++++++++++---
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/tools/perf/Documentation/perf-intel-pt.txt b/tools/perf/Documentation/perf-intel-pt.txt
index 85a2ff804900..9a90e2db4e4a 100644
--- a/tools/perf/Documentation/perf-intel-pt.txt
+++ b/tools/perf/Documentation/perf-intel-pt.txt
@@ -882,6 +882,9 @@ decoded packets and instructions. Note that this option slows down the decoder
and that the resulting file may be very large. The "d" option may be followed
by a number which has the following effect:
1 Suppress logging of perf events
+ 2 Log all perf events
+By default, logged perf events are filtered by any specified time ranges, but
+value 2 overrides that.
In addition, the period of the "instructions" event can be specified. e.g.
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index d90375659244..597120dd6b77 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -50,6 +50,7 @@
#define INTEL_PT_ERR_SUPPRESS_LOST 2
#define INTEL_PT_LOG_SUPPRESS_EV 1
+#define INTEL_PT_LOG_ALL_EV 2
struct range {
u64 start;
@@ -254,9 +255,22 @@ static void intel_pt_dump_sample(struct perf_session *session,
intel_pt_dump(pt, sample->aux_sample.data, sample->aux_sample.size);
}
-static bool intel_pt_log_events(struct intel_pt *pt)
+static bool intel_pt_log_events(struct intel_pt *pt, u64 tm)
{
- return !(pt->synth_opts.log_flags & INTEL_PT_LOG_SUPPRESS_EV);
+ struct perf_time_interval *range = pt->synth_opts.ptime_range;
+ int n = pt->synth_opts.range_num;
+
+ if (pt->synth_opts.log_flags & INTEL_PT_LOG_ALL_EV)
+ return true;
+
+ if (pt->synth_opts.log_flags & INTEL_PT_LOG_SUPPRESS_EV)
+ return false;
+
+ /* perf_time__ranges_skip_sample does not work if time is zero */
+ if (!tm)
+ tm = 1;
+
+ return !n || !perf_time__ranges_skip_sample(range, n, tm);
}
static int intel_pt_do_fix_overlap(struct intel_pt *pt, struct auxtrace_buffer *a,
@@ -2752,7 +2766,7 @@ static int intel_pt_process_event(struct perf_session *session,
if (!err && event->header.type == PERF_RECORD_TEXT_POKE)
err = intel_pt_text_poke(pt, event);
- if (intel_pt_enable_logging && intel_pt_log_events(pt)) {
+ if (intel_pt_enable_logging && intel_pt_log_events(pt, sample->time)) {
intel_pt_log("event %u: cpu %d time %"PRIu64" tsc %#"PRIx64" ",
event->header.type, sample->cpu, sample->time, timestamp);
intel_pt_log_event(event);
--
2.25.1
next prev parent reply other threads:[~2020-07-09 17:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-09 17:36 [PATCH 00/11] perf intel-pt: Add support for decoding FUP/TIP only Adrian Hunter
2020-07-09 17:36 ` [PATCH 01/11] perf intel-pt: Fix FUP packet state Adrian Hunter
2020-07-09 17:36 ` [PATCH 02/11] perf intel-pt: Fix duplicate branch after CBR Adrian Hunter
2020-07-09 17:36 ` [PATCH 03/11] perf tools: Improve aux_output not supported error Adrian Hunter
2020-07-09 17:36 ` [PATCH 04/11] perf auxtrace: Add optional error flags to the itrace 'e' option Adrian Hunter
2020-07-09 17:36 ` [PATCH 05/11] perf intel-pt: Use itrace error flags to suppress some errors Adrian Hunter
2020-07-09 17:50 ` Andi Kleen
2020-07-09 18:13 ` Adrian Hunter
2020-07-09 18:22 ` Adrian Hunter
2020-07-20 22:18 ` Andi Kleen
2020-07-09 17:36 ` [PATCH 06/11] perf auxtrace: Add optional log flags to the itrace 'd' option Adrian Hunter
2020-07-09 17:51 ` Andi Kleen
2020-07-09 17:36 ` [PATCH 07/11] perf intel-pt: Use itrace debug log flags to suppress some messages Adrian Hunter
2020-07-09 17:36 ` Adrian Hunter [this message]
2020-07-09 17:36 ` [PATCH 09/11] perf auxtrace: Add itrace 'q' option for quicker, less detailed decoding Adrian Hunter
2020-07-09 17:52 ` Andi Kleen
2020-07-09 17:36 ` [PATCH 10/11] perf intel-pt: Add support for decoding FUP/TIP only Adrian Hunter
2020-07-09 17:55 ` Andi Kleen
2020-07-09 17:36 ` [PATCH 11/11] perf intel-pt: Add support for decoding PSB+ only Adrian Hunter
2020-07-09 17:59 ` Andi Kleen
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=20200709173628.5613-9-adrian.hunter@intel.com \
--to=adrian.hunter@intel.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.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