linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/7] KVM: Restricted mapping of guest_memfd at the host and arm64 support
@ 2025-03-18 16:20 Fuad Tabba
  2025-03-18 16:20 ` [PATCH v6 1/7] KVM: guest_memfd: Make guest mem use guest mem inodes instead of anonymous inodes Fuad Tabba
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Fuad Tabba @ 2025-03-18 16:20 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

This series adds restricted mmap() support to guest_memfd, as well as
support for guest_memfd on arm64. Please see v3 for the context [1].

Main changes since v5 [2]:
- Freeze folio refcounts when checking them to avoid races (Kirill,
  Vlastimili, Ackerley)
- Handle invalidation (e.g., on truncation) of potentially shared memory
  (Ackerley)
- Rebased on the `KVM: Mapping guest_memfd backed memory at the host for
  software protected VMs` series [3], which entails renaming of MAPPABLE
  to SHAREABLE and a rebase on Linux 6.14-rc7.

The state diagram that uses the new states in this patch series,
and how they would interact with sharing/unsharing in pKVM [4].

Cheers,
/fuad

[1] https://lore.kernel.org/all/20241010085930.1546800-1-tabba@google.com/
[2] https://lore.kernel.org/all/20250117163001.2326672-1-tabba@google.com/
[3] https://lore.kernel.org/all/20250318161823.4005529-1-tabba@google.com/
[4] https://lpc.events/event/18/contributions/1758/attachments/1457/3699/Guestmemfd%20folio%20state%20page_type.pdf

Ackerley Tng (2):
  KVM: guest_memfd: Make guest mem use guest mem inodes instead of
    anonymous inodes
  KVM: guest_memfd: Track folio sharing within a struct kvm_gmem_private

Fuad Tabba (5):
  KVM: guest_memfd: Introduce kvm_gmem_get_pfn_locked(), which retains
    the folio lock
  KVM: guest_memfd: Folio sharing states and functions that manage their
    transition
  KVM: guest_memfd: Restore folio state after final folio_put()
  KVM: guest_memfd: Handle invalidation of shared memory
  KVM: guest_memfd: Add a guest_memfd() flag to initialize it as shared

 Documentation/virt/kvm/api.rst                |   4 +
 include/linux/kvm_host.h                      |  56 +-
 include/uapi/linux/kvm.h                      |   1 +
 include/uapi/linux/magic.h                    |   1 +
 .../testing/selftests/kvm/guest_memfd_test.c  |   7 +-
 virt/kvm/guest_memfd.c                        | 589 ++++++++++++++++--
 virt/kvm/kvm_main.c                           |  62 ++
 7 files changed, 682 insertions(+), 38 deletions(-)


base-commit: 1ea0414b447c8c96e6a6f6f953323c3df71b85a6
-- 
2.49.0.rc1.451.g8f38331e32-goog



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

end of thread, other threads:[~2025-04-02 22:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-18 16:20 [PATCH v6 0/7] KVM: Restricted mapping of guest_memfd at the host and arm64 support Fuad Tabba
2025-03-18 16:20 ` [PATCH v6 1/7] KVM: guest_memfd: Make guest mem use guest mem inodes instead of anonymous inodes Fuad Tabba
2025-03-18 16:20 ` [PATCH v6 2/7] KVM: guest_memfd: Introduce kvm_gmem_get_pfn_locked(), which retains the folio lock Fuad Tabba
2025-03-18 16:20 ` [PATCH v6 3/7] KVM: guest_memfd: Track folio sharing within a struct kvm_gmem_private Fuad Tabba
2025-03-18 16:20 ` [PATCH v6 4/7] KVM: guest_memfd: Folio sharing states and functions that manage their transition Fuad Tabba
2025-03-18 16:20 ` [PATCH v6 5/7] KVM: guest_memfd: Restore folio state after final folio_put() Fuad Tabba
2025-03-21 20:09   ` Vishal Annapurve
2025-03-25 15:57     ` Fuad Tabba
2025-04-02 22:17       ` Michael Roth
2025-03-18 16:20 ` [PATCH v6 6/7] KVM: guest_memfd: Handle invalidation of shared memory Fuad Tabba
2025-03-18 16:20 ` [PATCH v6 7/7] KVM: guest_memfd: Add a guest_memfd() flag to initialize it as shared Fuad Tabba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox