linux/virt/kvm
Fuad Tabba 576d035e2a KVM: guest_memfd: Track guest_memfd mmap support in memslot
Add a new internal flag, KVM_MEMSLOT_GMEM_ONLY, to the top half of
memslot->flags (which makes it strictly for KVM's internal use). This
flag tracks when a guest_memfd-backed memory slot supports host
userspace mmap operations, which implies that all memory, not just
private memory for CoCo VMs, is consumed through guest_memfd: "gmem
only".

This optimization avoids repeatedly checking the underlying guest_memfd
file for mmap support, which would otherwise require taking and
releasing a reference on the file for each check. By caching this
information directly in the memslot, we reduce overhead and simplify the
logic involved in handling guest_memfd-backed pages for host mappings.

Reviewed-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Shivank Garg <shivankg@amd.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Acked-by: David Hildenbrand <david@redhat.com>
Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Fuad Tabba <tabba@google.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-ID: <20250729225455.670324-12-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-27 04:35:00 -04:00
..
async_pf.c Revert "KVM: async_pf: avoid recursive flushing of work items" 2024-06-03 08:55:55 -07:00
async_pf.h
binary_stats.c KVM: stats: remove dead stores 2021-08-13 03:35:15 -04:00
coalesced_mmio.c KVM: Clean up coalesced MMIO ring full check 2024-08-29 19:38:33 -07:00
coalesced_mmio.h
dirty_ring.c KVM: Assert that slots_lock is held when resetting per-vCPU dirty rings 2025-06-20 13:41:04 -07:00
eventfd.c KVM: Drop sanity check that per-VM list of irqfds is unique 2025-06-23 09:50:59 -07:00
guest_memfd.c KVM: guest_memfd: Track guest_memfd mmap support in memslot 2025-08-27 04:35:00 -04:00
irqchip.c KVM: x86: Trigger I/O APIC route rescan in kvm_arch_irq_routing_update() 2025-06-20 13:52:41 -07:00
Kconfig KVM: Rename CONFIG_KVM_GENERIC_PRIVATE_MEM to CONFIG_HAVE_KVM_ARCH_GMEM_POPULATE 2025-08-27 04:35:00 -04:00
kvm_main.c KVM: x86: Enable KVM_GUEST_MEMFD for all 64-bit builds 2025-08-27 04:35:00 -04:00
kvm_mm.h KVM: Rename CONFIG_KVM_PRIVATE_MEM to CONFIG_KVM_GUEST_MEMFD 2025-08-27 04:34:59 -04:00
Makefile.kvm KVM: Rename CONFIG_KVM_PRIVATE_MEM to CONFIG_KVM_GUEST_MEMFD 2025-08-27 04:34:59 -04:00
pfncache.c KVM: pfncache: Precisely track refcounted pages 2024-10-25 12:57:59 -04:00
vfio.c VFIO: KVM: x86: Drop kvm_arch_{start,end}_assignment() 2025-06-25 09:51:33 -07:00
vfio.h