perf auxtrace: Add Z itrace option for timeless decoding
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 30 Apr 2021 07:02:58 +0000 (10:02 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 12 May 2021 15:43:10 +0000 (12:43 -0300)
Issues correlating timestamps can be avoided with timeless decoding. Add
an option for that, so that timeless decoding can be used even when
timestamps are present.

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-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/itrace.txt
tools/perf/util/auxtrace.c
tools/perf/util/auxtrace.h

index 0f10052..2d586fe 100644 (file)
@@ -20,6 +20,7 @@
                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)
 
        The default is all events i.e. the same as --itrace=ibxwpe,
        except for perf script where it is --itrace=ce
index 1b4091a..87a9220 100644 (file)
@@ -1569,6 +1569,9 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
                case 'q':
                        synth_opts->quick += 1;
                        break;
+               case 'Z':
+                       synth_opts->timeless_decoding = true;
+                       break;
                case ' ':
                case ',':
                        break;
index a4fbb33..59c3c05 100644 (file)
@@ -89,6 +89,7 @@ enum itrace_period_type {
  * @tlb: whether to synthesize TLB events
  * @remote_access: whether to synthesize remote access events
  * @mem: whether to synthesize memory events
+ * @timeless_decoding: prefer "timeless" decoding i.e. ignore timestamps
  * @callchain_sz: maximum callchain size
  * @last_branch_sz: branch context size
  * @period: 'instructions' events period
@@ -128,6 +129,7 @@ struct itrace_synth_opts {
        bool                    tlb;
        bool                    remote_access;
        bool                    mem;
+       bool                    timeless_decoding;
        unsigned int            callchain_sz;
        unsigned int            last_branch_sz;
        unsigned long long      period;