All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/10] KVM: Mapping guest_memfd backed memory at the host for software protected VMs
@ 2025-03-12 17:58 Fuad Tabba
  2025-03-12 17:58 ` [PATCH v6 01/10] mm: Consolidate freeing of typed folios on final folio_put() Fuad Tabba
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Fuad Tabba @ 2025-03-12 17:58 UTC (permalink / raw)
  To: kvm, linux-arm-msm, linux-mm
  Cc: pbonzini, chenhuacai, mpe, anup, paul.walmsley, palmer, aou,
	seanjc, viro, brauner, willy, akpm, xiaoyao.li, yilun.xu,
	chao.p.peng, jarkko, amoorthy, dmatlack, isaku.yamahata, mic,
	vbabka, vannapurve, ackerleytng, mail, david, michael.roth,
	wei.w.wang, liam.merwick, isaku.yamahata, kirill.shutemov,
	suzuki.poulose, steven.price, quic_eberman, quic_mnalajal,
	quic_tsoni, quic_svaddagi, quic_cvanscha, quic_pderrin,
	quic_pheragu, catalin.marinas, james.morse, yuzenghui,
	oliver.upton, maz, will, qperret, keirf, roypat, shuah, hch, jgg,
	rientjes, jhubbard, fvdl, hughd, jthoughton, peterx, tabba

Main changes since v5 [1]:
- Added handling of folio_put() when KVM is configured as a module
- KVM_GMEM_SHARED_MEM is orthogonal to KVM_GENERIC_MEMORY_ATTRIBUTES
  (Ackerley)
- kvm_gmem_offset_is_shared() takes folio as parameter to check locking
  (Kirill)
- Refactoring and fixes from comments on previous version
- Rebased on Linux 6.14-rc6

The purpose of this series is to serve as a base for _restricted_
mmap() support for guest_memfd backed memory at the host [2]. It
allows experimentation with what that support would be like in
the safe environment of software and non-confidential VM types.

For more background and for how to test this series, please refer
to v2 [3]. Note that an updated version of kvmtool that works
with this series is available here [4].

I'm working on respinning the series that tracks folio sharing [5]. I'll
post that one soon.

Cheers,
/fuad

[1] https://lore.kernel.org/all/20250303171013.3548775-1-tabba@google.com/
[2] https://lore.kernel.org/all/20250117163001.2326672-1-tabba@google.com/
[3] https://lore.kernel.org/all/20250129172320.950523-1-tabba@google.com/
[4] https://android-kvm.googlesource.com/kvmtool/+/refs/heads/tabba/guestmem-6.14
[5] https://lore.kernel.org/all/20250117163001.2326672-1-tabba@google.com/

Fuad Tabba (10):
  mm: Consolidate freeing of typed folios on final folio_put()
  KVM: guest_memfd: Handle final folio_put() of guest_memfd pages
  KVM: guest_memfd: Handle kvm_gmem_handle_folio_put() for KVM as a
    module
  KVM: guest_memfd: Allow host to map guest_memfd() pages
  KVM: guest_memfd: Handle in-place shared memory as guest_memfd backed
    memory
  KVM: x86: Mark KVM_X86_SW_PROTECTED_VM as supporting guest_memfd
    shared memory
  KVM: arm64: Refactor user_mem_abort() calculation of force_pte
  KVM: arm64: Handle guest_memfd()-backed guest page faults
  KVM: arm64: Enable mapping guest_memfd in arm64
  KVM: guest_memfd: selftests: guest_memfd mmap() test when mapping is
    allowed

 arch/arm64/include/asm/kvm_host.h             |  10 ++
 arch/arm64/kvm/Kconfig                        |   1 +
 arch/arm64/kvm/mmu.c                          |  76 +++++++-----
 arch/x86/include/asm/kvm_host.h               |   5 +
 arch/x86/kvm/Kconfig                          |   3 +-
 include/linux/kvm_host.h                      |  23 +++-
 include/linux/page-flags.h                    |  31 +++++
 include/uapi/linux/kvm.h                      |   1 +
 mm/debug.c                                    |   1 +
 mm/swap.c                                     |  50 +++++++-
 tools/testing/selftests/kvm/Makefile.kvm      |   1 +
 .../testing/selftests/kvm/guest_memfd_test.c  |  75 +++++++++++-
 virt/kvm/Kconfig                              |   4 +
 virt/kvm/guest_memfd.c                        | 110 ++++++++++++++++++
 virt/kvm/kvm_main.c                           |   9 +-
 15 files changed, 354 insertions(+), 46 deletions(-)


base-commit: 80e54e84911a923c40d7bee33a34c1b4be148d7a
-- 
2.49.0.rc0.332.g42c0ae87b1-goog


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2025-03-17 16:51 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-12 17:58 [PATCH v6 00/10] KVM: Mapping guest_memfd backed memory at the host for software protected VMs Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 01/10] mm: Consolidate freeing of typed folios on final folio_put() Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 02/10] KVM: guest_memfd: Handle final folio_put() of guest_memfd pages Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 03/10] KVM: guest_memfd: Handle kvm_gmem_handle_folio_put() for KVM as a module Fuad Tabba
2025-03-13 13:46   ` Ackerley Tng
2025-03-13 13:49   ` Ackerley Tng
2025-03-13 13:57     ` Fuad Tabba
2025-03-17 13:43     ` Vlastimil Babka
2025-03-17 14:38       ` Sean Christopherson
2025-03-17 15:04         ` Fuad Tabba
2025-03-17 16:27       ` Ackerley Tng
2025-03-17 16:50         ` Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 04/10] KVM: guest_memfd: Allow host to map guest_memfd() pages Fuad Tabba
2025-03-14 18:46   ` Ackerley Tng
2025-03-17 10:42     ` Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 05/10] KVM: guest_memfd: Handle in-place shared memory as guest_memfd backed memory Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 06/10] KVM: x86: Mark KVM_X86_SW_PROTECTED_VM as supporting guest_memfd shared memory Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 07/10] KVM: arm64: Refactor user_mem_abort() calculation of force_pte Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 08/10] KVM: arm64: Handle guest_memfd()-backed guest page faults Fuad Tabba
2025-03-12 17:58 ` [PATCH v6 09/10] KVM: arm64: Enable mapping guest_memfd in arm64 Fuad Tabba
2025-03-13 14:20   ` kernel test robot
2025-03-12 17:58 ` [PATCH v6 10/10] KVM: guest_memfd: selftests: guest_memfd mmap() test when mapping is allowed Fuad Tabba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.