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