On Wed, 21 May 2025 at 03:47, Gavin Shan <gshan@xxxxxxxxxx> wrote: > > Hi Fuad, > > On 5/14/25 2:34 AM, Fuad Tabba wrote: > > This patch introduces the KVM capability KVM_CAP_GMEM_SHARED_MEM, which > > indicates that guest_memfd supports shared memory (when enabled by the > > flag). This support is limited to certain VM types, determined per > > architecture. > > > > This patch also updates the KVM documentation with details on the new > > capability, flag, and other information about support for shared memory > > in guest_memfd. > > > > Signed-off-by: Fuad Tabba <tabba@xxxxxxxxxx> > > --- > > Documentation/virt/kvm/api.rst | 18 ++++++++++++++++++ > > include/uapi/linux/kvm.h | 1 + > > virt/kvm/kvm_main.c | 4 ++++ > > 3 files changed, 23 insertions(+) > > > > diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst > > index 47c7c3f92314..86f74ce7f12a 100644 > > --- a/Documentation/virt/kvm/api.rst > > +++ b/Documentation/virt/kvm/api.rst > > @@ -6390,6 +6390,24 @@ most one mapping per page, i.e. binding multiple memory regions to a single > > guest_memfd range is not allowed (any number of memory regions can be bound to > > a single guest_memfd file, but the bound ranges must not overlap). > > > > +When the capability KVM_CAP_GMEM_SHARED_MEM is supported, the 'flags' field > > +supports GUEST_MEMFD_FLAG_SUPPORT_SHARED. Setting this flag on guest_memfd > > +creation enables mmap() and faulting of guest_memfd memory to host userspace. > > + > > +When the KVM MMU performs a PFN lookup to service a guest fault and the backing > > +guest_memfd has the GUEST_MEMFD_FLAG_SUPPORT_SHARED set, then the fault will > > +always be consumed from guest_memfd, regardless of whether it is a shared or a > > +private fault. > > + > > +For these memslots, userspace_addr is checked to be the mmap()-ed view of the > > +same range specified using gmem.pgoff. Other accesses by KVM, e.g., instruction > > +emulation, go via slot->userspace_addr. The slot->userspace_addr field can be > > +set to 0 to skip this check, which indicates that KVM would not access memory > > +belonging to the slot via its userspace_addr. > > + > > This paragraph needs to be removed if PATCH[08/17] is going to be dropped. Done. Thanks, /fuad > > [PATCH v9 08/17] KVM: guest_memfd: Check that userspace_addr and fd+offset refer to same range > > > +The use of GUEST_MEMFD_FLAG_SUPPORT_SHARED will not be allowed for CoCo VMs. > > +This is validated when the guest_memfd instance is bound to the VM. > > + > > See KVM_SET_USER_MEMORY_REGION2 for additional details. > > > > [...] > > Thanks, > Gavin >