> On 16/10/2017 14:09, Luwei Kang wrote: > > 2. Enabling use of EPT to redirect PT output. > > — This enables the VMM to elect to virtualize the PT output buffer using EPT. In this mode, the CPU will treat PT output > addresses as Guest Physical Addresses (GPAs) and translate them using EPT. This means that Intel PT output reads (of the ToPA > table) and writes (of trace output) can cause EPT violations, and other output events. > > Yay yay yay! ;) > > > Intel Processor Trace virtualization can be work in one of 4 possible modes by set new option "pt_mode". Default is host guest > mode. > > a. system-wide: trace both host/guest and output to host buffer; b. > > host-only: only trace host and output to host buffer; c. guest-only: > > only trace guest and output to guest buffer; d. host-guest: trace > > host/guest simultaneous and output to their respective buffer. > > I think the guest-only mode isn't particularly useful, and I would remove it. Agree, will remove it. > > Nested virtualization is interesting. We would like the nested hypervisor to be forced to set the "use GPA for processor tracing" > secondary execution control whenever "enable EPT" is set and RTIT_CTL is nonzero. There is no way to encode that in > IA32_VMX_PROCBASED_CTLS2, however. It would be nice if Intel could reserve a bit in IA32_VMX_EPT_VPID_CAP for KVM to > express that constraint. Do you mean if nested hypervisor get the capability of "Guest PT use GPA" and EPT has enable. Highly recommend nested hypervisor set " Guest PT use GPA " as well. If nested hypervisor is also KVM, "use GPA for processor tracing" will be set for sure. But other hypervisor may not do that. So, we'd better add a flag in IA32_VMX_EPT_VPID_CAP to express that constraint. Is that right? Thanks, Luwei Kang