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

From: Paolo Bonzini
Date: Tue Oct 17 2017 - 08:13:28 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.

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.

Paolo