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

From: Wanpeng Li
Date: Tue Oct 17 2017 - 21:05:17 EST


2017-10-18 2:30 GMT+08:00 Jim Mattson <jmattson@xxxxxxxxxx>:
> Similarly, it is legal for the IA32_VMX_VMFUNC MSR to report all-zero.
>
> For consistency, perhaps we should not clear the "enable VM functions"
> capability in the IA32_VMX_PROCBASED_CTLS2 MSR just because we do not
> support any VM functions.

Agreed.

Regards,
Wanpeng Li

>
> On Tue, Oct 17, 2017 at 10:35 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>> On 17/10/2017 19:29, Jim Mattson wrote:
>>> Following the same line of reasoning, what if
>>> vmx->nested.nested_vmx_secondary_ctls_high is 0 after clearing
>>> SECONDARY_EXEC_ENABLE_VMFUNC? Does it make sense to report
>>> CPU_BASED_ACTIVATE_SECONDARY_CONTROLS if we don't actually support any
>>> of the secondary controls?
>>
>> All-zero is a valid value for secondary controls, so I think yes. Besides:
>>
>> 1) userspace can always get into a situation where there are no valid
>> secondary controls but processor-based execution controls have bit 31 as
>> 1-allowed;
>>
>> 2) I doubt that vmfunc can be the one bit that causes
>> nested_vmx_secondary_ctls_high to become zero :)
>>
>> Paolo