Re: [PATCH] KVM: Enable VMX-related bits in MSR_IA32_FEATURE_CONTROL.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux