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

From: Adrian Hunter
Date: Thu Apr 29 2021 - 08:58:48 EST


Hi

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.


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