diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2021-12-13 17:45:43 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-12-17 10:14:41 +0100 |
commit | 3bb7fd4be8c47a4c562dfeac1ef62ad85c9e3149 (patch) | |
tree | 44048e4189476d5c2699b632cb54eac5ca149c0a /tools/perf | |
parent | 731ff78841384877c7b36f78c8aafd60ed70ad3a (diff) | |
download | linux-stable-3bb7fd4be8c47a4c562dfeac1ef62ad85c9e3149.tar.gz linux-stable-3bb7fd4be8c47a4c562dfeac1ef62ad85c9e3149.tar.bz2 linux-stable-3bb7fd4be8c47a4c562dfeac1ef62ad85c9e3149.zip |
perf intel-pt: Fix sync state when a PSB (synchronization) packet is found
commit ad106a26aef3a95ac7ca88d033b431661ba346ce upstream.
When syncing, it may be that branch packet generation is not enabled at
that point, in which case there will not immediately be a control-flow
packet, so some packets before a control flow packet turns up, get
ignored. However, the decoder is in sync as soon as a PSB is found, so
the state should be set accordingly.
Fixes: f4aa081949e7b6 ("perf tools: Add Intel PT decoder")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org # v5.15+
Link: https://lore.kernel.org/r/20211210162303.2288710-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
[Adrian: Backport to v5.10]
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c index a49122002768..83e54333f03c 100644 --- a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +++ b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c @@ -2733,7 +2733,7 @@ leap: return err; decoder->have_last_ip = true; - decoder->pkt_state = INTEL_PT_STATE_NO_IP; + decoder->pkt_state = INTEL_PT_STATE_IN_SYNC; err = intel_pt_walk_psb(decoder); if (err) |