• Tom Lendacky's avatar
    KVM: SVM: Provide support for SEV-ES vCPU loading · 86137773
    Tom Lendacky authored
    An SEV-ES vCPU requires additional VMCB vCPU load/put requirements. SEV-ES
    hardware will restore certain registers on VMEXIT, but not save them on
    VMRUN (see Table B-3 and Table B-4 of the AMD64 APM Volume 2), so make the
    following changes:
    
    General vCPU load changes:
      - During vCPU loading, perform a VMSAVE to the per-CPU SVM save area and
        save the current values of XCR0, XSS and PKRU to the per-CPU SVM save
        area as these registers will be restored on VMEXIT.
    
    General vCPU put changes:
      - Do not attempt to restore registers that SEV-ES hardware has already
        restored on VMEXIT.
    Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
    Message-Id: <019390e9cb5e93cd73014fa5a040c17d42588733.1607620209.git.thomas.lendacky@amd.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    86137773
svm.h 16.6 KB