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

From: Liran Alon
Date: Thu Dec 12 2019 - 12:49:34 EST




> On 12 Dec 2019, at 19:43, Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote:
>
> 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.

+1 on that.

/proc/cpuinfo should just dump supported VMX features that kernel is aware of as exposed from CPU.
Without further processing.