• Vitaly Kuznetsov's avatar
    KVM: nVMX: Allow VMREAD when Enlightened VMCS is in use · 6cbbaab6
    Vitaly Kuznetsov authored
    Hyper-V TLFS explicitly forbids VMREAD and VMWRITE instructions when
    Enlightened VMCS interface is in use:
    
    "Any VMREAD or VMWRITE instructions while an enlightened VMCS is
    active is unsupported and can result in unexpected behavior.""
    
    Windows 11 + WSL2 seems to ignore this, attempts to VMREAD VMCS field
    0x4404 ("VM-exit interruption information") are observed. Failing
    these attempts with nested_vmx_failInvalid() makes such guests
    unbootable.
    
    Microsoft confirms this is a Hyper-V bug and claims that it'll get fixed
    eventually but for the time being we need a workaround. (Temporary) allow
    VMREAD to get data from the currently loaded Enlightened VMCS.
    
    Note: VMWRITE instructions remain forbidden, it is not clear how to
    handle them properly and hopefully won't ever be needed.
    Reviewed-by: default avatarSean Christopherson <seanjc@google.com>
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20220112170134.1904308-6-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    6cbbaab6
nested.c 208 KB