On 04/03/2022 15:41, Peter Zijlstra wrote: > On Mon, Feb 14, 2022 at 01:09:06PM +0200, Adrian Hunter wrote: >> Currently, when Intel PT is used within a VM guest, it is not possible to >> make use of TSC because perf clock is subject to paravirtualization. > > Yeah, so how much of that still makes sense, or ever did? AFAIK the > whole pv_clock thing is utter crazy. Should we not fix that instead? Presumably pv_clock must work with different host operating systems. Similarly, KVM must work with different guest operating systems. Perhaps I'm wrong, but I imagine re-engineering time virtualization might be a pretty big deal, far exceeding the scope of these patches. While it is not something that I really need, it is also not obvious that the virtualization people would see any benefit. My primary goal is to be able to make a trace covering the host and (Linux) guests. Intel PT can do that. It can trace straight through VM-Entries/Exits, politely noting them on the way past. Perf tools already supports decoding that, but only for tracing the kernel because it needs more information (so-called side-band events) to decode guest user space. The simplest way to get that is to run perf inside the guests to capture the side-band events, and then inject them into the host perf.data file during post processing. That, however, requires a clock that works for both host and guests. TSC is suitable because KVM largely leaves it alone, except for VMX TSC Offset and Scaling, but that has to be dealt with anyway because it also affects the Intel PT trace.