]> git.baikalelectronics.ru Git - kernel.git/commitdiff
perf intel-pt: Update documentation to include new ptwrite and power events
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 26 May 2017 08:17:36 +0000 (11:17 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 30 Jun 2017 14:50:54 +0000 (11:50 -0300)
Update documentation to include new ptwrite and power events.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1495786658-18063-36-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/intel-pt.txt

index d157dee7a4ec89151ba795c13f54063b189e39e1..4b6cdbf8f935ef993b89a05168019a9d56b795b8 100644 (file)
@@ -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.