• Sean Christopherson's avatar
    KVM: SVM: Unconditionally sync GPRs to GHCB on VMRUN of SEV-ES guest · 25009140
    Sean Christopherson authored
    Drop the per-GPR dirty checks when synchronizing GPRs to the GHCB, the
    GRPs' dirty bits are set from time zero and never cleared, i.e. will
    always be seen as dirty.  The obvious alternative would be to clear
    the dirty bits when appropriate, but removing the dirty checks is
    desirable as it allows reverting GPR dirty+available tracking, which
    adds overhead to all flavors of x86 VMs.
    
    Note, unconditionally writing the GPRs in the GHCB is tacitly allowed
    by the GHCB spec, which allows the hypervisor (or guest) to provide
    unnecessary info; it's the guest's responsibility to consume only what
    it needs (the hypervisor is untrusted after all).
    
      The guest and hypervisor can supply additional state if desired but
      must not rely on that additional state being provided.
    
    Cc: Brijesh Singh <brijesh.singh@amd.com>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Fixes: 291bd20d ("KVM: SVM: Add initial support for a VMGEXIT VMEXIT")
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210122235049.3107620-2-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    25009140
sev.c 49.9 KB