Re: [PATCH v3 0/5] VMX Capability MSRs

From: David Matlack
Date: Wed Nov 30 2016 - 13:06:40 EST


On Wed, Nov 30, 2016 at 3:22 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
>
> On 30/11/2016 03:14, David Matlack wrote:
>> This patchset adds support setting the VMX capability MSRs from userspace.
>> This is required for migration of nested-capable VMs to different CPUs and
>> KVM versions.
>>
>> Patch 1 generates the non-true VMX MSRs using the true MSRs, which allows
>> userspace to skip restoring them.
>>
>> Patch 2 adds support for restoring the VMX capability MSRs.
>>
>> Patches 3 and 4 make KVM's emulation of MSR_IA32_VMX_CR{0,4}_FIXED1 more
>> accurate.
>>
>> Patch 5 fixes a bug in emulated VM-entry that came up when testing patches
>> 3 and 4.
>>
>> Changes since v2:
>> * Generate CR0_FIXED1 in addition to CR4_FIXED1
>> * Generate "non-true" capability MSRs from the "true" versions and remove
>> "non-true" MSRs from struct nested_vmx.
>> * Disallow restore of CR{0,4}_FIXED1 and "non-true" MSRs since they are
>> generated.
>>
>> Changes since v1:
>> * Support restoring less-capable versions of MSR_IA32_VMX_BASIC,
>> MSR_IA32_VMX_CR{0,4}_FIXED{0,1}.
>> * Include VMX_INS_OUTS in MSR_IA32_VMX_BASIC initial value.
>>
>> David Matlack (5):
>> KVM: nVMX: generate non-true VMX MSRs based on true versions
>> KVM: nVMX: support restore of VMX capability MSRs
>> KVM: nVMX: fix checks on CR{0,4} during virtual VMX operation
>> KVM: nVMX: generate MSR_IA32_CR{0,4}_FIXED1 from guest CPUID
>> KVM: nVMX: load GUEST_EFER after GUEST_CR0 during emulated VM-entry
>>
>> arch/x86/include/asm/vmx.h | 31 +++
>> arch/x86/kvm/vmx.c | 479 +++++++++++++++++++++++++++++++++++++--------
>> 2 files changed, 427 insertions(+), 83 deletions(-)
>
> Just a small nit that can be fixed on applying. Thanks!

Thanks for the thorough review!

>
> Paolo