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