On 30/10/2018 12:26, Alexander Shishkin wrote: >>> affects directly whether the tracing CPUID leaf can be added to the >>> guest. Therefore it's not perf that can decide whether to turn it on; >>> KVM must know it when /dev/kvm is opened, which is why it is a module >>> parameter. > > There is a control in the perf event attribute that enables tracing the > guest. If this control is enabled, the kvm needs to stay away from any > PT related MSRs. This cannot happen once the guest has been told it can trace itself. There is no standard way to tell the guest that the host overrode its choice to use PT. However, the host will get a PGD/PGE packet around vmentry and vmexit, so there _will_ be an indication that the guest owned the MSRs for that period of time. If PT context switching is enabled with the module parameter, we could also reject creation of events with the attribute set. However that won't help if the event is created before KVM is even loaded. Paolo > Conversely, if kvm is using PT (or, as you say, "the > guest is tracing itself"), the host should not be allowed to ask for > tracing the guest at the same time.