Merge branch 'kvm-6.11-sev-snp' into HEAD
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 3 Jun 2024 17:19:46 +0000 (13:19 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 3 Jun 2024 17:19:46 +0000 (13:19 -0400)
commitab978c62e72d6b2d41842210e0cc435d9ed0dadb
tree71bf56a9d023865588f743c909093c1cd4a667f2
parentf9d1b541d057bf94453201d77ffbbfba659c9ad3
parentb2ec042347fde5df1239d228b4d86ca642944870
Merge branch 'kvm-6.11-sev-snp' into HEAD

Pull base x86 KVM support for running SEV-SNP guests from Michael Roth:

* add some basic infrastructure and introduces a new KVM_X86_SNP_VM
  vm_type to handle differences versus the existing KVM_X86_SEV_VM and
  KVM_X86_SEV_ES_VM types.

* implement the KVM API to handle the creation of a cryptographic
  launch context, encrypt/measure the initial image into guest memory,
  and finalize it before launching it.

* implement handling for various guest-generated events such as page
  state changes, onlining of additional vCPUs, etc.

* implement the gmem/mmu hooks needed to prepare gmem-allocated pages
  before mapping them into guest private memory ranges as well as
  cleaning them up prior to returning them to the host for use as
  normal memory. Because those cleanup hooks supplant certain
  activities like issuing WBINVDs during KVM MMU invalidations, avoid
  duplicating that work to avoid unecessary overhead.

This merge leaves out support support for attestation guest requests
and for loading the signing keys to be used for attestation requests.
arch/x86/include/asm/kvm_host.h
arch/x86/include/asm/sev.h
arch/x86/kvm/Kconfig
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/svm/sev.c
arch/x86/kvm/svm/svm.c
arch/x86/kvm/svm/svm.h
arch/x86/kvm/trace.h
arch/x86/kvm/x86.c
include/linux/pagemap.h
mm/truncate.c