Re: [PATCH v9 06/41] KVM: guest_memfd: Introduce function to check GFN private/shared status
"David Hildenbrand (Arm)" <[email protected]>
| Newsgroups | org.kernel.vger.linux-kselftest,dev.linux.lists.linux-coco,org.kernel.vger.kvm,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-trace-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 7/29/26 02:35, Ackerley Tng via B4 Relay wrote: > From: Ackerley Tng <[email protected]> > > Introduce a function for KVM to check the private/shared status of guest > memory at a given GFN. > > This will be used in a later patch. > > Co-developed-by: Sean Christopherson <[email protected]> > Signed-off-by: Sean Christopherson <[email protected]> > Reviewed-by: Xiaoyao Li <[email protected]> > Reviewed-by: Fuad Tabba <[email protected]> > Tested-by: Shivank Garg <[email protected]> > Signed-off-by: Ackerley Tng <[email protected]> > --- > include/linux/kvm_host.h | 2 ++ > virt/kvm/guest_memfd.c | 32 ++++++++++++++++++++++++++++++++ > 2 files changed, 34 insertions(+) > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 438567e3fa6a1..73f564b87a324 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -2594,6 +2594,8 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) > #endif /* kvm_arch_has_private_mem */ > > #ifdef CONFIG_KVM_GUEST_MEMFD > +bool kvm_gmem_is_private(struct kvm *kvm, gfn_t gfn); > + > int kvm_gmem_get_pfn(struct kvm *kvm, struct kvm_memory_slot *slot, > gfn_t gfn, kvm_pfn_t *pfn, struct page **page, > int *max_order); > diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c > index 8c7709a352cc7..33c9830190e2e 100644 > --- a/virt/kvm/guest_memfd.c > +++ b/virt/kvm/guest_memfd.c > @@ -474,6 +474,38 @@ static int kvm_gmem_mmap(struct file *file, struct vm_area_struct *vma) > return 0; > } > > +bool kvm_gmem_is_private(struct kvm *kvm, gfn_t gfn) The function name makes is sound like we are testing whether a kvm_gmem instance is private. The common code functions are kvm_mem_is_private and kvm_vm_mem_is_private So I would expect this here to be called kvm_gmem_mem_is_private But then, it's confusing that there is kvm_gmem_is_private_mem() already, which the new function calls. Maybe we have to indicate for the latter that it works on the inode? kvm_gmem_inode_mem_is_private() ? -- Cheers, David