Re: [PATCH v10 07/41] KVM: guest_memfd: Stub in ability to enable in-place shared<=>private conversion
"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 8/7/26 23:52, Ackerley Tng via B4 Relay wrote: > From: Sean Christopherson <[email protected]> > > Stub in global variable to enable in-place guest_memfd private<=>shared > memory conversion, which will eventually be exposed to userspace via a > module param, and wire up the __kvm_mem_is_private() static call to the > guest_memfd version when in-place conversion is enabled, i.e. when gmem is > the sole authority on private vs. shared memory. > > Cc: Fuad Tabba <[email protected]> > Cc: Xiaoyao Li <[email protected]> > Signed-off-by: Sean Christopherson <[email protected]> > Co-developed-by: Ackerley Tng <[email protected]> > Signed-off-by: Ackerley Tng <[email protected]> > --- > include/linux/kvm_host.h | 6 ++++++ > virt/kvm/guest_memfd.c | 26 ++++++++++++++++++++++++++ > virt/kvm/kvm_main.c | 12 +++++++++++- > 3 files changed, 43 insertions(+), 1 deletion(-) > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 65fbce46b63f4..9477ecebbbced 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -2580,6 +2580,8 @@ static inline bool kvm_vm_mem_is_private(struct kvm *kvm, gfn_t gfn) > #endif /* CONFIG_KVM_VM_MEMORY_ATTRIBUTES */ > > #ifdef kvm_arch_has_private_mem > +extern bool gmem_in_place_conversion; Is there a "supports/has/enable" in there? And should we call it "kvm_gmem" for completeness? > + > typedef bool (kvm_mem_is_private_t)(struct kvm *kvm, gfn_t gfn); > DECLARE_STATIC_CALL(__kvm_mem_is_private, kvm_mem_is_private_t); > > @@ -2588,6 +2590,8 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) > return static_call(__kvm_mem_is_private)(kvm, gfn); > } > #else > +#define gmem_in_place_conversion false > + > static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) > { > return false; > @@ -2595,6 +2599,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); As mentioned in v9, the name is confusing. kvm_gmem_mem_is_private ? -- Cheers, David