mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 22:07:26 +07:00
61b6e08dc8
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 |
||
---|---|---|
.. | ||
Build | ||
gen-insn-attr-x86.awk | ||
inat_types.h | ||
inat.c | ||
inat.h | ||
insn.c | ||
insn.h | ||
intel-pt-decoder.c | ||
intel-pt-decoder.h | ||
intel-pt-insn-decoder.c | ||
intel-pt-insn-decoder.h | ||
intel-pt-log.c | ||
intel-pt-log.h | ||
intel-pt-pkt-decoder.c | ||
intel-pt-pkt-decoder.h | ||
x86-opcode-map.txt |