Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ead2bfdb authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo
Browse files

perf intel-pt: Update documentation to include new ptwrite and power events



Update documentation to include new ptwrite and power events.

Signed-off-by: default avatarAdrian 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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent cc892720
Loading
Loading
Loading
Loading
+40 −2
Original line number Original line Diff line number Diff line
@@ -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.