Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[trace][intelpt] Fix multi CPU decoding TSC assertion error
Occasionally the assertion that enforces increasing TSC values in `DecodedThread::NotifyTsc` would get tripped during large multi CPU trace decoding. The root cause of this issue was an assumption that all the data of a PSB will fit within the start,end TSC of the "owning" `ThreadContinuousExecution`. After investigating, this is not the case because PSBs can have multiple TSCs. This diff works around this issue by introducing a TSC upper bound for each `PSBBlockDecoder`. This fixes the assertion failure by simply "dropping" the remaining data of PSB whenever the TSC upper bound is exceeded during decoding. Future work will do a larger refactor of the multi CPU decoding to remove the dependencies on this incorrect assumption so that PSB blocks that span multiple `ThreadContinuousExecutions` are correctly handled. correctly Test Plan: Differential Revision: https://reviews.llvm.org/D136610
- Loading branch information
Showing
1 changed file
with
56 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters