2020-10-14 12:04:37

by Andi Kleen

[permalink] [raw]
Subject: [PATCH] perf: Improve PT documentation slightly

Document the higher level --insn-trace etc. perf script options.

Include the howto how to build xed into the manpage

Cc: [email protected]
Signed-off-by: Andi Kleen <[email protected]>
---
tools/perf/Documentation/perf-intel-pt.txt | 30 ++++++++++++++++++++++
1 file changed, 30 insertions(+)

diff --git a/tools/perf/Documentation/perf-intel-pt.txt b/tools/perf/Documentation/perf-intel-pt.txt
index d5a266d7f15b..cc2a8b2be31a 100644
--- a/tools/perf/Documentation/perf-intel-pt.txt
+++ b/tools/perf/Documentation/perf-intel-pt.txt
@@ -112,6 +112,32 @@ The flags are "bcrosyiABEx" which stand for branch, call, return, conditional,
system, asynchronous, interrupt, transaction abort, trace begin, trace end, and
in transaction, respectively.

+perf script also supports higher level ways to dump instruction traces:
+
+ perf script --insn-trace --xed
+
+Dump all instructions. This requires installing the xed tool (see XED below)
+Dumping all instructions in a long trace can be fairly slow. It is usually better
+to start with higher level decoding, like
+
+ perf script --call-trace
+
+or
+
+ perf script --call-ret-trace
+
+and then select a time range of interest. The time range can then be examined
+in detail with
+
+ perf script --time starttime,stoptime --insn-trace --xed
+
+While examining the trace it's also useful to filter on specific CPUs using
+the -C option
+
+ perf script --time starttime,stoptime --insn-trace --xed -C 1
+
+Dump all instructions in time range on CPU 1.
+
Another interesting field that is not printed by default is 'ipc' which can be
displayed as follows:

@@ -1093,6 +1119,10 @@ To display PEBS events from the Intel PT trace, use the itrace 'o' option e.g.

perf script --itrace=oe

+XED
+---
+
+include::build-xed.txt[]

SEE ALSO
--------
--
2.28.0


2020-10-14 17:41:07

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf: Improve PT documentation slightly

Em Tue, Oct 13, 2020 at 08:53:46PM -0700, Andi Kleen escreveu:
> Document the higher level --insn-trace etc. perf script options.
>
> Include the howto how to build xed into the manpage

Thanks, applied.

> Cc: [email protected]
> Signed-off-by: Andi Kleen <[email protected]>
> ---
> tools/perf/Documentation/perf-intel-pt.txt | 30 ++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-intel-pt.txt b/tools/perf/Documentation/perf-intel-pt.txt
> index d5a266d7f15b..cc2a8b2be31a 100644
> --- a/tools/perf/Documentation/perf-intel-pt.txt
> +++ b/tools/perf/Documentation/perf-intel-pt.txt
> @@ -112,6 +112,32 @@ The flags are "bcrosyiABEx" which stand for branch, call, return, conditional,
> system, asynchronous, interrupt, transaction abort, trace begin, trace end, and
> in transaction, respectively.
>
> +perf script also supports higher level ways to dump instruction traces:
> +
> + perf script --insn-trace --xed
> +
> +Dump all instructions. This requires installing the xed tool (see XED below)
> +Dumping all instructions in a long trace can be fairly slow. It is usually better
> +to start with higher level decoding, like
> +
> + perf script --call-trace
> +
> +or
> +
> + perf script --call-ret-trace
> +
> +and then select a time range of interest. The time range can then be examined
> +in detail with
> +
> + perf script --time starttime,stoptime --insn-trace --xed
> +
> +While examining the trace it's also useful to filter on specific CPUs using
> +the -C option
> +
> + perf script --time starttime,stoptime --insn-trace --xed -C 1
> +
> +Dump all instructions in time range on CPU 1.
> +
> Another interesting field that is not printed by default is 'ipc' which can be
> displayed as follows:
>
> @@ -1093,6 +1119,10 @@ To display PEBS events from the Intel PT trace, use the itrace 'o' option e.g.
>
> perf script --itrace=oe
>
> +XED
> +---
> +
> +include::build-xed.txt[]
>
> SEE ALSO
> --------
> --
> 2.28.0
>

--

- Arnaldo