perf intel-pt: Update documentation to include new ptwrite and power events
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>
This commit is contained in:
parent
cc892720d8
commit
ead2bfdb85
@ -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
|
script export-to-postgresql.py for more details, and to script
|
||||||
call-graph-from-postgresql.py for an example of using the database.
|
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
|
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.
|
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.
|
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
|
which, in turn, is the same as
|
||||||
|
|
||||||
--itrace=ibxe
|
--itrace=ibxwpe
|
||||||
|
|
||||||
The letters are:
|
The letters are:
|
||||||
|
|
||||||
i synthesize "instructions" events
|
i synthesize "instructions" events
|
||||||
b synthesize "branches" events
|
b synthesize "branches" events
|
||||||
x synthesize "transactions" events
|
x synthesize "transactions" events
|
||||||
|
w synthesize "ptwrite" events
|
||||||
|
p synthesize "power" events
|
||||||
c synthesize branches events (calls only)
|
c synthesize branches events (calls only)
|
||||||
r synthesize branches events (returns only)
|
r synthesize branches events (returns only)
|
||||||
e synthesize tracing error events
|
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
|
'flags' field can be used in perf script to determine whether the event is a
|
||||||
tranasaction start, commit or abort.
|
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
|
are quite important. Users must know if what they are seeing is a complete
|
||||||
picture or not.
|
picture or not.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user