RE: [PATCH 0/9] Intel Processor Trace virtulization enabling

From: Kang, Luwei
Date: Wed Oct 18 2017 - 06:18:49 EST


> 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