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

From: Sean Christopherson
Date: Thu Dec 12 2019 - 13:28:39 EST

On Thu, Dec 12, 2019 at 03:13:45PM +0100, Paolo Bonzini wrote:
> On 12/12/19 13:26, Borislav Petkov wrote:
> >
> > vmx flags : virtual_nmis preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offsetting virtual_tpr mtf virt_apic_accesses ept vpid unrestricted_guest ple shadow_vmcs pml mode_based_ept_exec

Tying into the consistency comment below, any objection to always prefixing
"ept" for relevant controls instead of following the SDM? Specifically,
that would yield ept_mode_based_exec and ept_spp

> >
> > virtual_nmis -> vnmis
> Even vnmi
> > preemption_timer -> preempt_tmr
> I would prefer the full one here.
> > flexpriority -> flexprio
> Full name?
> > tsc_offsetting -> tsc_ofs
> tsc_offset?

I'll go with tsc_offset.

> > virtual_tpr -> vtpr
> Do we need this? It's usually included together with flexpriority.
> > virt_apic_accesses -> vapic

Using v<feature> across the board makes sense to keep things consistent,
i.e. vnmi, vtpr, vapic, etc...

Anyone have thoughts on how to shorten "APIC-register virtualization"
without colliding with vapic or apicv? I currently have apic_reg_virt,
which is a bit wordy. apic_regv isn't awful, but I don't love it.

The other control that will be awkard is "Virtual Interrupt Delivery".

> > unrestricted_guest -> unres_guest
> Full? Or just unrestricted

I prefer unrestricted_guest, a bare unrestricted just makes me wonder
"unrestricted what?". But I can live with "unrestricted" if that's the

> In general I would stick to the same names as kvm_intel module
> parameters (sans "enable_" if applicable) and not even bother publishing
> the others. Some features are either not used by KVM or available on
> all VMX processors.

IMO there's value in printing features that are not 1:1 with module params.

I also think it makes sense to print features of interest even if KVM
doesn't (yet) support the feature, e.g. to allow a user/developer to check
if they can use/test a KVM build with support for a new feature without
having to build and install the new kernel.

> Paolo
> > and so on. Those are just my examples - I betcha the SDM is more
> > creative here with abbreviations. But you guys are going to grep for
> > them. If it were me, I'd save on typing. :-)