FAILED: patch "[PATCH] perf intel-pt: Ensure never to set 'last_ip' when packet" failed to apply to 4.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
f952eaceb089b691eba7c4e13686e742a8f26bf5Mon Sep 17 00:00:00 2001
From: Adrian Hunter <[email protected]>
Date: Fri, 26 May 2017 11:17:07 +0300
Subject: [PATCH] perf intel-pt: Ensure never to set 'last_ip' when packet
'count' is zero
Intel PT uses IP compression based on the last IP. For decoding purposes, 'last IP' is not updated when a branch target has been suppressed, which is indicated by IPBytes == 0. IPBytes is stored in the packet 'count', so ensure never to set 'last_ip' when packet 'count' is zero.
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +5 -3
@@ -1470,7 +1470,8 @@ static int intel_pt_walk_psbend(struct intel_pt_decoder *decoder)case INTEL_PT_FUP : decoder->pge = true; -intel_pt_set_last_ip (decoder); +if (decoder->packet.count) +intel_pt_set_last_ip (decoder);break ;case INTEL_PT_MODE_TSX :
@@ -1756,8 +1757,9 @@ static int intel_pt_walk_trace(struct intel_pt_decoder *decoder)static inline bool intel_pt_have_ip (struct intel_pt_decoder *decoder) { -return decoder->have_last_ip || decoder->packet.count ==0 || - decoder->packet.count ==3 || decoder->packet.count ==6 ; +return decoder->packet.count && + (decoder->have_last_ip || decoder->packet.count ==3 || + decoder->packet.count ==6 ); }/* Walk PSB+ packets to get in sync. */