perf intel-pt: Fix MTC timestamp calculation for large MTC periods
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 28 Sep 2016 11:41:36 +0000 (14:41 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 5 Oct 2016 11:15:58 +0000 (08:15 -0300)
commit3bccbe20f6d188ce7b00326e776b745cfd35b10a
treed612443434cfe4540c2fd6cd47e761c4d6141a2c
parent51ee6481fa8e879cc942bcc1b0af713e158b7a98
perf intel-pt: Fix MTC timestamp calculation for large MTC periods

The MTC packet provides a 8-bit slice of CTC which is related to TSC by
the TMA packet, however the TMA packet only provides the lower 16 bits
of CTC.  If mtc_shift > 8 then some of the MTC bits are not in the CTC
provided by the TMA packet. Fix-up the last_mtc calculated from the TMA
packet by copying the missing bits from the current MTC assuming the
least difference between the two, and that the current MTC comes after
last_mtc.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org # v4.3+
Link: http://lkml.kernel.org/r/1475062896-22274-2-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c