[trace][intelpt] Support system-wide tracing [14] - Decode per cpuThis is the final functional patch to support intel pt decoding per cpu.It works by doing the following:- First, all context swi
[trace][intelpt] Support system-wide tracing [14] - Decode per cpuThis is the final functional patch to support intel pt decoding per cpu.It works by doing the following:- First, all context switches are split by tid and sorted in order. This produces a list of continuous executes per thread per core.- Then, all intel pt subtraces are split by PSB boundaries and assigned to individual thread continuous executions on the same core by doing simple TSC-based comparisons.- With this, we have, per thread, a sorted list of continuous executions each one with a list of intel pt subtraces. Up to this point, this is really fast because no instructions were actually decoded.- Then, each thread can be decoded by traversing their continuous executions and intel pt subtraces. An advantage of having these continuous executions is that we can identify if a continuous exexecution doesn't have intel pt data, and thus has a gap in it. We can later to more sofisticated comparisons to identify if within a continuous execution there are gaps.I'm adding a test as well.Differential Revision: https://reviews.llvm.org/D126394
show more ...