Robert Hoo <robert.hu@xxxxxxxxxxxxxxx> writes: > On Mon, 2021-01-25 at 10:41 +0100, Vitaly Kuznetsov wrote: >> Robert Hoo <robert.hu@xxxxxxxxxxxxxxx> writes: >> We'll have to do something about Enlightened VMCS I believe. In >> theory, >> when eVMCS is in use, 'CPU_BASED_ACTIVATE_TERTIARY_CONTROLS' should >> not >> be exposed, e.g. when KVM hosts a EVMCS enabled guest the control >> should >> be filtered out. Something like (completely untested): >> >> diff --git a/arch/x86/kvm/vmx/evmcs.c b/arch/x86/kvm/vmx/evmcs.c >> index 41f24661af04..c44ff05f3235 100644 >> --- a/arch/x86/kvm/vmx/evmcs.c >> +++ b/arch/x86/kvm/vmx/evmcs.c >> @@ -299,6 +299,7 @@ const unsigned int nr_evmcs_1_fields = >> ARRAY_SIZE(vmcs_field_to_evmcs_1); >> >> __init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf) >> { >> + vmcs_conf->cpu_based_exec_ctrl &= >> ~EVMCS1_UNSUPPORTED_EXEC_CTRL; >> vmcs_conf->pin_based_exec_ctrl &= >> ~EVMCS1_UNSUPPORTED_PINCTRL; >> vmcs_conf->cpu_based_2nd_exec_ctrl &= >> ~EVMCS1_UNSUPPORTED_2NDEXEC; >> >> diff --git a/arch/x86/kvm/vmx/evmcs.h b/arch/x86/kvm/vmx/evmcs.h >> index bd41d9462355..bf2c5e7a4a8f 100644 >> --- a/arch/x86/kvm/vmx/evmcs.h >> +++ b/arch/x86/kvm/vmx/evmcs.h >> @@ -50,6 +50,7 @@ DECLARE_STATIC_KEY_FALSE(enable_evmcs); >> */ >> #define EVMCS1_UNSUPPORTED_PINCTRL (PIN_BASED_POSTED_INTR | \ >> PIN_BASED_VMX_PREEMPTION_TIMER) >> +#define EVMCS1_UNSUPPORTED_EXEC_CTRL >> (CPU_BASED_ACTIVATE_TERTIARY_CONTROLS) >> #define >> EVMCS1_UNSUPPORTED_2NDEXEC \ >> (SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY >> | \ >> SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES >> | \ >> >> should do the job I think. >> > Hi Vitaly, > > I'm going to incorporate above patch in my next version. Shall I have > it your signed-off-by? > [setup_vmcs_config: filter out tertiary control when using eVMCS] > signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> You can just incorporate it into your patch or, in case you want to have it separate, feel free just add a 'Suggested-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>' tag. Thanks! -- Vitaly