[PATCH V2 00/12] perf intel-pt: Add more support for VMs

From: Adrian Hunter
Date: Fri Apr 30 2021 - 03:02:50 EST


Hi

Here is V2, see changes list below.

Previously, limited support was added for timeless decoding of VM traces.

Primarily, these patches add support for decoding traces of virtual
machines using timestamps, assuming the VMX TSC Offset is unchanging
during perf record, and VMX TSC Scaling is not used.

The first 3 patches add an itrace option to allow timeless decoding
even if timestamps have been recorded.

The next 2 patches add an option to perf inject to do "VM Time Correlation"
i.e. sort out the timestamps.

There are 5 preparation patches, then the main changes in patch
"perf intel-pt: Add VM Time Correlation to decoder".

The final patch adds documentation which provides an example.


Changes in V2:

perf inject: Add facility to do in place update
Error out instead of prompt to continue

perf inject: Add --vm-time-correlation option
Tighten up parsing of "dry-run"

perf intel-pt: Add a tree for VMCS information
Rename lookup_vmcs to findnew_vmcs

perf intel-pt: Add VM Time Correlation to decoder
Rename lookup_vmcs to findnew_vmcs

perf intel-pt: Parse VM Time Correlation options and set up decoding
Rename lookup_vmcs to findnew_vmcs
Explain "dry-run" option
Adjust example for 'perf inject' changes


Adrian Hunter (12):
perf auxtrace: Add Z itrace option for timeless decoding
perf intel-pt: Move synth_opts initialization earlier
perf intel-pt: Support Z itrace option for timeless decoding
perf inject: Add facility to do in place update
perf inject: Add --vm-time-correlation option
perf auxtrace: Allow buffers to be mapped read / write
perf intel-pt: Let overlap detection handle VM timestamps
perf intel-pt: Add a tree for VMCS information
perf intel-pt: Pass the first timestamp to the decoder
perf intel-pt: Better 7-byte timestamp wraparound logic
perf intel-pt: Add VM Time Correlation to decoder
perf intel-pt: Parse VM Time Correlation options and set up decoding

tools/perf/Documentation/itrace.txt | 1 +
tools/perf/Documentation/perf-inject.txt | 10 +
tools/perf/Documentation/perf-intel-pt.txt | 114 +++-
tools/perf/builtin-inject.c | 73 ++-
tools/perf/util/auxtrace.c | 8 +-
tools/perf/util/auxtrace.h | 14 +-
tools/perf/util/data.c | 3 +-
tools/perf/util/data.h | 1 +
tools/perf/util/header.c | 5 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 723 ++++++++++++++++++++-
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 20 +-
tools/perf/util/intel-pt-decoder/intel-pt-log.h | 5 +
tools/perf/util/intel-pt.c | 224 ++++++-
tools/perf/util/session.c | 6 +-
14 files changed, 1169 insertions(+), 38 deletions(-)


Regards
Adrian