perf intel-pt: Support Z itrace option for timeless decoding
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 30 Apr 2021 07:03:00 +0000 (10:03 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 12 May 2021 15:43:10 +0000 (12:43 -0300)
Correlating virtual machine TSC packets is not supported at present, so
instead support the Z itrace option.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: https://lore.kernel.org/r/20210430070309.17624-4-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/perf-intel-pt.txt
tools/perf/util/intel-pt.c

index 1dcec73..33df789 100644 (file)
@@ -869,6 +869,7 @@ The letters are:
        L       synthesize last branch entries on existing event records
        s       skip initial number of events
        q       quicker (less detailed) decoding
+       Z       prefer to ignore timestamps (so-called "timeless" decoding)
 
 "Instructions" events look like they were recorded by "perf record -e
 instructions".
@@ -1062,6 +1063,10 @@ What *will* be decoded with the qq option:
 
        - instruction pointer associated with PSB packets
 
+The Z option is equivalent to having recorded a trace without TSC
+(i.e. config term tsc=0). It can be useful to avoid timestamp issues when
+decoding a trace of a virtual machine.
+
 
 dump option
 ~~~~~~~~~~~
index eef8970..7bee969 100644 (file)
@@ -899,7 +899,7 @@ static bool intel_pt_timeless_decoding(struct intel_pt *pt)
        bool timeless_decoding = true;
        u64 config;
 
-       if (!pt->tsc_bit || !pt->cap_user_time_zero)
+       if (!pt->tsc_bit || !pt->cap_user_time_zero || pt->synth_opts.timeless_decoding)
                return true;
 
        evlist__for_each_entry(pt->session->evlist, evsel) {