lkml.org 
[lkml]   [2021]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 4/7] KVM: nVMX: Force enlightened VMCS sync from nested_vmx_failValid()
    Date
    'need_vmcs12_to_shadow_sync' is used for both shadow and enlightened
    VMCS sync when we exit to L1. The comment in nested_vmx_failValid()
    validly states why shadow vmcs sync can be omitted but this doesn't
    apply to enlightened VMCS as it 'shadows' all VMCS12 fields.

    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    ---
    arch/x86/kvm/vmx/nested.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c
    index ec476f64df73..eb2d25a93356 100644
    --- a/arch/x86/kvm/vmx/nested.c
    +++ b/arch/x86/kvm/vmx/nested.c
    @@ -194,9 +194,13 @@ static int nested_vmx_failValid(struct kvm_vcpu *vcpu,
    | X86_EFLAGS_ZF);
    get_vmcs12(vcpu)->vm_instruction_error = vm_instruction_error;
    /*
    - * We don't need to force a shadow sync because
    - * VM_INSTRUCTION_ERROR is not shadowed
    + * We don't need to force sync to shadow VMCS because
    + * VM_INSTRUCTION_ERROR is not shadowed. Enlightened VMCS 'shadows' all
    + * fields and thus must be synced.
    */
    + if (nested_evmcs_is_used(to_vmx(vcpu)))
    + to_vmx(vcpu)->nested.need_vmcs12_to_shadow_sync = true;
    +
    return kvm_skip_emulated_instruction(vcpu);
    }

    --
    2.31.1
    \
     
     \ /
      Last update: 2021-05-17 15:52    [W:4.282 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site