Re: [PATCH 1/2] KVM: VMX: Don't advertise EPT switching if EPT itself is not exposed

From: Jim Mattson
Date: Mon Oct 16 2017 - 13:16:29 EST


Does it still make sense to advertise "Enable VM Functions" in the
secondary processor-based VM-execution controls if we don't actually
support any VM Functions?

On Sat, Oct 14, 2017 at 7:31 PM, Wanpeng Li <kernellwp@xxxxxxxxx> wrote:
> From: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
>
> EPT switching is advertised unconditionally since it is emulated, however, it can
> be treated as an extended feature for EPT, it should be not advertised if EPT itself
> is not exposed. This patch fixes it.
>
> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Cc: Radim KrÄmÃÅ <rkrcmar@xxxxxxxxxx>
> Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
> ---
> arch/x86/kvm/vmx.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index c460b0b..3644540 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -2842,8 +2842,9 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx *vmx)
> * Advertise EPTP switching unconditionally
> * since we emulate it
> */
> - vmx->nested.nested_vmx_vmfunc_controls =
> - VMX_VMFUNC_EPTP_SWITCHING;
> + if (enable_ept)
> + vmx->nested.nested_vmx_vmfunc_controls =
> + VMX_VMFUNC_EPTP_SWITCHING;
> }
>
> /*
> --
> 2.7.4
>