Re: [PATCH 09/16] x86/vmx: Introduce VMX_FEATURES_*

2019-10-07 Thread Sean Christopherson
On Mon, Oct 07, 2019 at 07:08:28PM +0200, Paolo Bonzini wrote:
> On 04/10/19 23:56, Sean Christopherson wrote:
> > +#define VMX_FEATURE_RDSEED_EXITING ( 2*32+ 16) /* "" VM-Exit on RDSEED */
> > +#define VMX_FEATURE_PAGE_MOD_LOGGING   ( 2*32+ 17) /* "pml" Log dirty 
> > pages into buffer */
> > +#define VMX_FEATURE_EPT_VIOLATION_VE   ( 2*32+ 18) /* "" Conditionally 
> > reflect EPT violations as #VE exceptions */
> > +#define VMX_FEATURE_PT_CONCEAL_VMX ( 2*32+ 19) /* "" Suppress VMX 
> > indicators in Processor Trace */
> > +#define VMX_FEATURE_XSAVES ( 2*32+ 20) /* "" Enable XSAVES and 
> > XRSTORS in guest */
> > +#define VMX_FEATURE_RESERVED_PIN_21( 2*32+ 21) /* "" Reserved */
> > +#define VMX_FEATURE_MODE_BASED_EPT_EXEC( 2*32+ 22) /* Enable separate 
> > EPT EXEC bits for supervisor vs. user */
> > +#define VMX_FEATURE_RESERVED_PIN_23( 2*32+ 23) /* "" Reserved */
> > +#define VMX_FEATURE_PT_USE_GPA ( 2*32+ 24) /* "" Processor 
> > Trace logs GPAs */
> > +#define VMX_FEATURE_TSC_SCALING( 2*32+ 25) /* Scale hardware 
> > TSC when read in guest */
> > +#define VMX_FEATURE_RESERVED_PIN_26( 2*32+ 26) /* "" Reserved */
> > +#define VMX_FEATURE_RESERVED_PIN_27( 2*32+ 27) /* "" Reserved */
> > +#define VMX_FEATURE_ENCLV_EXITING  ( 2*32+ 28) /* "" VM-Exit on ENCLV 
> > (leaf dependent) */
> > +#define VMX_FEATURE_RESERVED_PIN_29( 2*32+ 29) /* "" Reserved */
> > +#define VMX_FEATURE_RESERVED_PIN_30( 2*32+ 30) /* "" Reserved */
> > +#define VMX_FEATURE_RESERVED_PIN_31( 2*32+ 31) /* "" Reserved */
> 
> Pasto on the reserved bit names, but in general why is it useful to
> define them?

Doh.  It was mostly so that I could more easily cross-reference the SDM
and visually see that I wasn't skipping bits.  No argument from me if it'd
be preferably to omit them.


Re: [PATCH 09/16] x86/vmx: Introduce VMX_FEATURES_*

2019-10-07 Thread Paolo Bonzini
On 04/10/19 23:56, Sean Christopherson wrote:
> +#define VMX_FEATURE_RDSEED_EXITING   ( 2*32+ 16) /* "" VM-Exit on RDSEED */
> +#define VMX_FEATURE_PAGE_MOD_LOGGING ( 2*32+ 17) /* "pml" Log dirty pages 
> into buffer */
> +#define VMX_FEATURE_EPT_VIOLATION_VE ( 2*32+ 18) /* "" Conditionally reflect 
> EPT violations as #VE exceptions */
> +#define VMX_FEATURE_PT_CONCEAL_VMX   ( 2*32+ 19) /* "" Suppress VMX 
> indicators in Processor Trace */
> +#define VMX_FEATURE_XSAVES   ( 2*32+ 20) /* "" Enable XSAVES and 
> XRSTORS in guest */
> +#define VMX_FEATURE_RESERVED_PIN_21  ( 2*32+ 21) /* "" Reserved */
> +#define VMX_FEATURE_MODE_BASED_EPT_EXEC  ( 2*32+ 22) /* Enable separate 
> EPT EXEC bits for supervisor vs. user */
> +#define VMX_FEATURE_RESERVED_PIN_23  ( 2*32+ 23) /* "" Reserved */
> +#define VMX_FEATURE_PT_USE_GPA   ( 2*32+ 24) /* "" Processor 
> Trace logs GPAs */
> +#define VMX_FEATURE_TSC_SCALING  ( 2*32+ 25) /* Scale hardware 
> TSC when read in guest */
> +#define VMX_FEATURE_RESERVED_PIN_26  ( 2*32+ 26) /* "" Reserved */
> +#define VMX_FEATURE_RESERVED_PIN_27  ( 2*32+ 27) /* "" Reserved */
> +#define VMX_FEATURE_ENCLV_EXITING( 2*32+ 28) /* "" VM-Exit on ENCLV 
> (leaf dependent) */
> +#define VMX_FEATURE_RESERVED_PIN_29  ( 2*32+ 29) /* "" Reserved */
> +#define VMX_FEATURE_RESERVED_PIN_30  ( 2*32+ 30) /* "" Reserved */
> +#define VMX_FEATURE_RESERVED_PIN_31  ( 2*32+ 31) /* "" Reserved */

Pasto on the reserved bit names, but in general why is it useful to
define them?

Paolo