linux_dsm_epyc7002/tools/perf/util/intel-pt-decoder
Adrian Hunter 61b6e08dc8 perf intel-pt: Fix improved sample timestamp
The decoder uses its current timestamp in samples. Usually that is a
timestamp that has already passed, but in some cases it is a timestamp
for a branch that the decoder is walking towards, and consequently
hasn't reached.

The intel_pt_sample_time() function decides which is which, but was not
handling TNT packets exactly correctly.

In the case of TNT, the timestamp applies to the first branch, so the
decoder must first walk to that branch.

That means intel_pt_sample_time() should return true for TNT, and this
patch makes that change. However, if the first branch is a non-taken
branch (i.e. a 'N'), then intel_pt_sample_time() needs to return false
for subsequent taken branches in the same TNT packet.

To handle that, introduce a new state INTEL_PT_STATE_TNT_CONT to
distinguish the cases.

Note that commit 3f04d98e97 ("perf intel-pt: Improve sample
timestamp") was also a stable fix and appears, for example, in v4.4
stable tree as commit a4ebb58fd124 ("perf intel-pt: Improve sample
timestamp").

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org # v4.4+
Fixes: 3f04d98e97 ("perf intel-pt: Improve sample timestamp")
Link: http://lkml.kernel.org/r/20190510124143.27054-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-05-16 14:17:23 -03:00
..
Build perf tools: Rename build libperf to perf 2019-02-14 15:18:08 -03:00
gen-insn-attr-x86.awk License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
inat_types.h perf tools: Fix tarball build broken by pt/bts 2015-08-22 12:27:07 -03:00
inat.c perf tools: Fix tarball build broken by pt/bts 2015-08-22 12:27:07 -03:00
inat.h perf intel-pt: Bring instruction decoder files into line with the kernel 2017-11-28 14:28:49 -03:00
insn.c perf tools: Add AVX-512 support to the instruction decoder used by Intel PT 2016-07-21 09:37:18 -03:00
insn.h perf tools intel-pt-decoder: Update insn.h from the kernel sources 2018-06-01 16:13:18 -03:00
intel-pt-decoder.c perf intel-pt: Fix improved sample timestamp 2019-05-16 14:17:23 -03:00
intel-pt-decoder.h perf intel-pt: Add decoder flags for trace begin / end 2018-09-20 15:19:51 -03:00
intel-pt-insn-decoder.c perf script: Fix LBR skid dump problems in brstackinsn 2018-12-28 16:33:02 -03:00
intel-pt-insn-decoder.h perf intel-pt/bts: Tidy instruction buffer size usage 2016-10-24 10:31:32 -03:00
intel-pt-log.c perf intel-pt: Add more event information to debug log 2018-11-05 14:53:37 -03:00
intel-pt-log.h perf intel-pt: Add more event information to debug log 2018-11-05 14:53:37 -03:00
intel-pt-pkt-decoder.c perf intel-pt: Fix packet decoding of CYC packets 2018-06-25 11:59:36 -03:00
intel-pt-pkt-decoder.h perf intel-pt: Add decoder support for ptwrite and power event packets 2017-06-21 11:35:50 -03:00
x86-opcode-map.txt x86/decoder: Fix and update the opcodes map 2017-12-15 13:45:20 +01:00