Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1645442

[PATCH 34/37] perf intel-pt: Update documentation to include new ptwrite and power events

From Adrian Hunter <adrian.hunter@intel.com>
Newsgroups linux.kernel
Subject [PATCH 34/37] perf intel-pt: Update documentation to include new ptwrite and power events
Date 2017-05-19 11:10 +0200
Message-ID <tIM56-8nS-75@gated-at.bofh.it> (permalink)
References <tIM53-8nS-3@gated-at.bofh.it>
Organization Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki

Show all headers | View raw


Update documentation to include new ptwrite and power events.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
 tools/perf/Documentation/intel-pt.txt | 42 +++++++++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/tools/perf/Documentation/intel-pt.txt b/tools/perf/Documentation/intel-pt.txt
index d157dee7a4ec..4b6cdbf8f935 100644
--- a/tools/perf/Documentation/intel-pt.txt
+++ b/tools/perf/Documentation/intel-pt.txt
@@ -108,6 +108,9 @@ approach is available to export the data to a postgresql database.  Refer to
 script export-to-postgresql.py for more details, and to script
 call-graph-from-postgresql.py for an example of using the database.
 
+There is also script intel-pt-events.py which provides an example of how to
+unpack the raw data for power events and PTWRITE.
+
 As mentioned above, it is easy to capture too much data.  One way to limit the
 data captured is to use 'snapshot' mode which is explained further below.
 Refer to 'new snapshot option' and 'Intel PT modes of operation' further below.
@@ -710,13 +713,15 @@ Having no option is the same as
 
 which, in turn, is the same as
 
-	--itrace=ibxe
+	--itrace=ibxwpe
 
 The letters are:
 
 	i	synthesize "instructions" events
 	b	synthesize "branches" events
 	x	synthesize "transactions" events
+	w	synthesize "ptwrite" events
+	p	synthesize "power" events
 	c	synthesize branches events (calls only)
 	r	synthesize branches events (returns only)
 	e	synthesize tracing error events
@@ -735,7 +740,40 @@ and "r" can be combined to get calls and returns.
 'flags' field can be used in perf script to determine whether the event is a
 tranasaction start, commit or abort.
 
-Error events are new.  They show where the decoder lost the trace.  Error events
+Note that "instructions", "branches" and "transactions" events depend on code
+flow packets which can be disabled by using the config term "branch=0".  Refer
+to the config terms section above.
+
+"ptwrite" events record the payload of the ptwrite instruction and whether
+"fup_on_ptw" was used.  "ptwrite" events depend on PTWRITE packets which are
+recorded only if the "ptw" config term was used.  Refer to the config terms
+section above.  perf script "synth" field displays "ptwrite" information like
+this: "ip: 0 payload: 0x123456789abcdef0"  where "ip" is 1 if "fup_on_ptw" was
+used.
+
+"Power" events correspond to power event packets and CBR (core-to-bus ratio)
+packets.  While CBR packets are always recorded when tracing is enabled, power
+event packets are recorded only if the "pwr_evt" config term was used.  Refer to
+the config terms section above.  The power events record information about
+C-state changes, whereas CBR is indicative of CPU frequency.  perf script
+"event,synth" fields display information like this:
+	cbr:  cbr: 22 freq: 2189 MHz (200%)
+	mwait:  hints: 0x60 extensions: 0x1
+	pwre:  hw: 0 cstate: 2 sub-cstate: 0
+	exstop:  ip: 1
+	pwrx:  deepest cstate: 2 last cstate: 2 wake reason: 0x4
+Where:
+	"cbr" includes the frequency and the percentage of maximum non-turbo
+	"mwait" shows mwait hints and extensions
+	"pwre" shows C-state transitions (to a C-state deeper than C0) and
+	whether	initiated by hardware
+	"exstop" indicates execution stopped and whether the IP was recorded
+	exactly,
+	"pwrx" indicates return to C0
+For more details refer to the Intel 64 and IA-32 Architectures Software
+Developer Manuals.
+
+Error events show where the decoder lost the trace.  Error events
 are quite important.  Users must know if what they are seeing is a complete
 picture or not.
 
-- 
1.9.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/37] perf intel-pt: Power events and PTWRITE Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 30/37] perf intel-pt: Factor out intel_pt_set_event_name() Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 14/37] perf intel-pt: Add decoder support for CBR events Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 27/37] perf intel-pt: Join needlessly wrapped lines Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 17/37] perf tools: Fix message because cpu list option is -C not -c Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 07/37] perf intel-pt: Ensure never to set 'last_ip' when packet 'count' is zero Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 37/37] perf intel-pt: Improve sample timestamp Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
    Re: [PATCH 37/37] perf intel-pt: Improve sample timestamp Andi Kleen <ak@linux.intel.com> - 2017-05-19 16:40 +0200
  [PATCH 09/37] perf intel-pt: Add missing __fallthrough Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 19/37] perf script: Add 'synth' event type for synthesized events Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 35/37] perf intel-pt: Do not use TSC packets for calculating CPU cycles to TSC Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 05/37] perf intel-pt: Ensure IP is zero when state is INTEL_PT_STATE_NO_IP Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 03/37] perf intel-pt: Add documentation for new config terms Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 26/37] perf intel-pt: Remove unused instructions_sample_period Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 11/37] perf intel-pt: Add decoder support for ptwrite and power event packets Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 18/37] perf script: Fix message because field list option is -F not -f Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 13/37] perf intel-pt: Move decoder error setting into one condition Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 32/37] perf intel-pt: Synthesize new power and ptwrite events Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 15/37] perf intel-pt: Remove redundant initial_skip checks Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 24/37] perf script: Add synthesized Intel PT power and ptwrite events Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 36/37] perf auxtrace: Add CPU filter support Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 23/37] perf auxtrace: Add itrace option to output power events Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 25/37] perf intel-pt: Factor out common code synthesizing event samples Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 04/37] perf intel-pt: Fix missing stack clear Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 20/37] perf script: Add 'synth' field for synthesized event payloads Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 34/37] perf intel-pt: Update documentation to include new ptwrite and power events Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 10/37] perf intel-pt: Clear FUP flag on error Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 28/37] perf intel-pt: Tidy Intel PT evsel lookup into separate function Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 16/37] perf intel-pt: Fix transactions_sample_type Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:10 +0200
  [PATCH 01/37] perf intel-pt: Allow decoding with branch tracing disabled Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:20 +0200
  [PATCH 02/37] perf intel-pt: Add default config for pass-through branch enable Adrian Hunter <adrian.hunter@intel.com> - 2017-05-19 11:20 +0200

csiph-web