mbox series

[v2,0/9] KVM: guest_memfd: New hooks and functionality for SEV-SNP and TDX

Message ID 20240507180729.3975856-1-pbonzini@redhat.com (mailing list archive)
Headers show
Series KVM: guest_memfd: New hooks and functionality for SEV-SNP and TDX | expand

Message

Paolo Bonzini May 7, 2024, 6:07 p.m. UTC
This is the hopefully final version of the gmem common API patches,
adding target-independent functionality and hooks that are
needed by SEV-SNP and TDX.

Changes from https://patchew.org/linux/20240404185034.3184582-1-pbonzini@redhat.com/:

- added acks and comments from Vlastimil to patches 1-2

- dropped FGP_CREAT_ONLY, which also means removing kvm_gmem_undo_get_pfn()
  in the last patch

- filemap_grab_folio() cannot return NULL

- dropped weak implementation of kvm_arch_gmem_prepare_needed()

- dropped __kvm_gmem_punch_hole()

- introduced kvm_gmem_populate_cb typedef

- renamed argument of kvm_gmem_populate from gfn to start_gfn,
  variable from this_gfn to gfn

- post_populate hook is mandatory

- replaced implementation of "KVM: x86: Add hook for determining max NPT
  mapping level" with suggestion from SNP series

Contrarily to my answer to Yilun, prepare does not need to test
hwpoison.  It's kvm_gmem_populate() that needs it, and in fact
it already does via __kvm_gmem_get_pfn().

Paolo


Michael Roth (4):
  mm: Introduce AS_INACCESSIBLE for encrypted/confidential memory
  KVM: guest_memfd: Use AS_INACCESSIBLE when creating guest_memfd inode
  KVM: guest_memfd: Add hook for invalidating memory
  KVM: x86: Add hook for determining max NPT mapping level

Paolo Bonzini (5):
  KVM: guest_memfd: pass error up from filemap_grab_folio
  KVM: guest_memfd: limit overzealous WARN
  KVM: guest_memfd: Add hook for initializing memory
  KVM: guest_memfd: extract __kvm_gmem_get_pfn()
  KVM: guest_memfd: Add interface for populating gmem pages with user
    data

 arch/x86/include/asm/kvm-x86-ops.h |   3 +
 arch/x86/include/asm/kvm_host.h    |   3 +
 arch/x86/kvm/mmu/mmu.c             |  23 +++-
 arch/x86/kvm/x86.c                 |  13 +++
 include/linux/kvm_host.h           |  36 +++++++
 include/linux/pagemap.h            |   1 +
 mm/truncate.c                      |   3 +-
 virt/kvm/Kconfig                   |   8 ++
 virt/kvm/guest_memfd.c             | 167 +++++++++++++++++++++++++----
 9 files changed, 231 insertions(+), 26 deletions(-)

Comments

Isaku Yamahata May 8, 2024, 12:15 a.m. UTC | #1
On Tue, May 07, 2024 at 02:07:20PM -0400,
Paolo Bonzini <pbonzini@redhat.com> wrote:

> This is the hopefully final version of the gmem common API patches,
> adding target-independent functionality and hooks that are
> needed by SEV-SNP and TDX.
> 
> Changes from https://patchew.org/linux/20240404185034.3184582-1-pbonzini@redhat.com/:

I tried those patches and confirmed that now kvm_gmem_populate() and
private_max_mapping_level() hook work for TDX KVM without further change.

Thank you for updating them.