> >>>> No, it's not possible. KVM doesn't have a say on what the > >>>> processor writes in the tracing packets. > >>> Can KVM refuse to enable packet generation if CSbase is not zero and > >>> CPUID.(EAX=14H,ECX=0)[bit 31] seen by guest is different from host? > >> > >> Yes, but the processor could change operating mode (and hence CSbase) > >> while tracing is active. This is very unlikely, since it would > >> require nonzero CS-base and a 32-bit host, but in principle not > >> impossible (could be a firmware call, for example). > >> > >> The only solution is for KVM to accept both, and for QEMU to refuse a > >> setting that does not match the host. > >> > > > > So I need to add a patch in KVM to disabled the Intel PT when the > > CSbase is not zero and the guest LIP different from the host. And this > > limitation in qemu (disabled the PT when LIP is enabled in the host) > > can be remove. Is that right? > > No, if a feature cannot be emulated, that means it cannot be enabled unless it > matches the host. That's generally not a problem since Intel PT is usually > used > only with "-cpu host". >
The limitation of LIP in qemu will mask off the Intel PT in KVM guest even with "-cpu host". e.g. This bit will be set in SnowRidge HW and later. How about "-cpu cpu_model, +intel-pt" use case? The current value of Intel PT CPUID is a constant. Can we make the ICX CPUID as basic inforation(LIP is 0) and using "+intel-pt-lip" to make Intel PT work on the CPU which LIP is 1 on the host? As you mentioned before, Intel PT cannot be enabled in guest unless it matches the host. Thanks, Luwei Kang