timestamp_insn_cnt is used to estimate the timestamp based on the number of
instructions since the last known timestamp. If the estimate is not
accurate enough decoding might not be correctly synchronized with side-band
events causing more trace errors. However there are always timestamps
following an overflow, so the estimate is not needed and can indeed result
in more errors. Suppress the estimate by setting timestamp_insn_cnt to

Signed-off-by: Adrian Hunter <adrian.hun...@intel.com>
Cc: <sta...@vger.kernel.org>
 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c 
index 5e4d0bbafc8b..f9157aed1289 100644
--- a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
+++ b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
@@ -1378,6 +1378,7 @@ static int intel_pt_overflow(struct intel_pt_decoder 
        decoder->have_tma = false;
        decoder->cbr = 0;
+       decoder->timestamp_insn_cnt = 0;
        decoder->pkt_state = INTEL_PT_STATE_ERR_RESYNC;
        decoder->overflow = true;
        return -EOVERFLOW;

Reply via email to