On Wed, Nov 23, 2016 at 3:44 AM, Paolo Bonzini <pbonz...@redhat.com> wrote:
> On 23/11/2016 02:14, David Matlack wrote:
>>       switch (msr_index) {
>>       case MSR_IA32_VMX_BASIC:
>> +             return vmx_restore_vmx_basic(vmx, data);
>> +     case MSR_IA32_VMX_TRUE_PINBASED_CTLS:
>> +     case MSR_IA32_VMX_PINBASED_CTLS:
>> +     case MSR_IA32_VMX_TRUE_PROCBASED_CTLS:
>> +     case MSR_IA32_VMX_PROCBASED_CTLS:
>> +     case MSR_IA32_VMX_TRUE_EXIT_CTLS:
>> +     case MSR_IA32_VMX_EXIT_CTLS:
>> +     case MSR_IA32_VMX_TRUE_ENTRY_CTLS:
>> +     case MSR_IA32_VMX_ENTRY_CTLS:
>
> PINBASED_CTLS, PROCBASED_CTLS, EXIT_CTLS and ENTRY_CTLS can be derived
> from their "true" counterparts, so I think it's better to remove the
> "non-true" ones from struct nested_vmx (and/or add the "true" ones when
> missing) and make them entirely computed.  But it can be done on top.

Good point. And that would mean userspace does not need to restore the
non-true MSRs, right? KVM does not emulate MSR_IA32_VMX_BASIC[55]=0,
and will probably never want to.

Reply via email to