perf intel-pt: Fix decoding to accept CBR between FUP and corresponding TIP
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 31 May 2018 10:23:43 +0000 (13:23 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 6 Jun 2018 15:52:07 +0000 (12:52 -0300)
It is possible to have a CBR packet between a FUP packet and
corresponding TIP packet. Stop treating it as an error.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1527762225-26024-3-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

index f9157ae..e5eb917 100644 (file)
@@ -1604,7 +1604,6 @@ static int intel_pt_walk_fup_tip(struct intel_pt_decoder *decoder)
                case INTEL_PT_PSB:
                case INTEL_PT_TSC:
                case INTEL_PT_TMA:
-               case INTEL_PT_CBR:
                case INTEL_PT_MODE_TSX:
                case INTEL_PT_BAD:
                case INTEL_PT_PSBEND:
@@ -1620,6 +1619,10 @@ static int intel_pt_walk_fup_tip(struct intel_pt_decoder *decoder)
                        decoder->pkt_step = 0;
                        return -ENOENT;
 
+               case INTEL_PT_CBR:
+                       intel_pt_calc_cbr(decoder);
+                       break;
+
                case INTEL_PT_OVF:
                        return intel_pt_overflow(decoder);