Thus spake Avi Kivity <avi@xxxxxxxxxx>: > On 03/06/2012 05:02 PM, Julian Stecklina wrote: >> The spec (Vol 3C, Chapter 34.1) regarding the IA32_FEATURE_CONTROL MSR says "Therefore the lock bit must be set after configuring support for Intel Virtualization Technology and prior to transferring control to an option ROM or the OS." and regarding bit 2: "This bit enables VMX for system executive that do not require SMX." >> >> Signed-off-by: Julian Stecklina <js@xxxxxxxxx> >> --- >> arch/x86/kvm/vmx.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c >> index 4ea7678..aef1e5b 100644 >> --- a/arch/x86/kvm/vmx.c >> +++ b/arch/x86/kvm/vmx.c >> @@ -2007,7 +2007,12 @@ static int vmx_get_vmx_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata) >> >> switch (msr_index) { >> case MSR_IA32_FEATURE_CONTROL: >> - *pdata = 0; >> + /* >> + * If nested VMX is enabled, set the lock bit (bit 0) >> + * and the "Enable VMX outside SMX" bit (bit 2) in the >> + * FEATURE_CONTROL MSR. >> + */ >> + *pdata = nested_vmx_allowed(vcpu) ? 0x5 : 0; >> break; >> case MSR_IA32_VMX_BASIC: >> /* > > The way I read it, it should be done by the guest, not the host. It should be done by the BIOS, before it hands off control to the OS kernel. The question is whether you want to emulate this MSR at this level or just set it to sane values when nested VMX should be enabled and be happy. :) Regards, Julian -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html