perf intel-pt: Fix estimated timestamps for cycle-accurate mode
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 28 Sep 2016 11:41:35 +0000 (14:41 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Oct 2016 07:01:27 +0000 (03:01 -0400)
commit 51ee6481fa8e879cc942bcc1b0af713e158b7a98 upstream.

In cycle-accurate mode, timestamps can be calculated from CYC packets.
The decoder also estimates timestamps based on the number of
instructions since the last timestamp. For that to work in
cycle-accurate mode, the instruction count needs to be reset to zero
when a timestamp is calculated from a CYC packet, but that wasn't
happening, so fix it.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1475062896-22274-1-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c

index 9409d014b46c713de02df828cf9ad7ff726881e8..38c5be26c755f297e7e27e17f5075789b58fb57e 100644 (file)
@@ -1323,6 +1323,8 @@ static void intel_pt_calc_cyc_timestamp(struct intel_pt_decoder *decoder)
                             timestamp, decoder->timestamp);
        else
                decoder->timestamp = timestamp;
+
+       decoder->timestamp_insn_cnt = 0;
 }
 
 /* Walk PSB+ packets when already in sync. */