Re: [PATCH v4 11/19] x86/cpu: Print VMX flags in /proc/cpuinfo using VMX_FEATURES_*

Sean Christopherson
2019-12-12T17:44:02Z

On Thu, Dec 12, 2019 at 04:57:10PM +0100, Paolo Bonzini wrote:
> On 12/12/19 16:52, Liran Alon wrote:
> >>> virt_apic_accesses -> vapic
> >> apicv
> > Frankly, I dislike APICv terminology. I prefer to enumerate the
> > various VMX features which are collectively called APICv by KVM.
> > APICv currently represents in KVM terminology the combination of
> > APIC-register virtualization, virtual-interrupt-delivery and
> > posted-interrupts (See cpu_has_vmx_apicv()).
> >
> > In fact, the coupling of “enable_apicv” module parameter have made me
> > multiple times to need to disable entire APICv features when there
> > for example was only a bug in posted-interrupts.
> >
> > Even you got confused as virtualize-apic-access is not part of KVM’s
> > APICv terminology but rather it’s enablement depend on
> > flexpriority_enabled (See cpu_need_virtualize_apic_accesses()). i.e.
> > It can be used for faster intercept handling of accesses to guest
> > xAPIC MMIO page.
>
> Right, I got confused with APIC-register virtualization. Virtualize
> APIC accesses is another one I wouldn't bother putting in /proc/cpuinfo,
> since it's usually present together with flexpriority.

Key word being "usually". My intent in printing out partially redundant
flags was to help users debug/understand why the combined feature isn't
supported. E.g. userspace can already easily (relatively speaking) query
flexpriority support via /sys/module/kvm_intel/parameters/flexpriority.
But if that comes back "N", the user has no way to determine exactly why
flexpriority is disabled.