Re: [PATCH v12 09/45] KVM: guest_memfd: Stub in ability to enable in-place shared<=>private conversion
From: Binbin Wu <hidden>
Date: 2026-09-01 09:47:55
Also in:
kvm, linux-coco, linux-doc, linux-kselftest, linux-mm, lkml
On 8/31/2026 8:25 AM, Ackerley Tng via B4 Relay wrote:
From: Sean Christopherson <seanjc@google.com> 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_is_private_gfn() 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 <redacted> Cc: Xiaoyao Li <redacted> Signed-off-by: Sean Christopherson <seanjc@google.com> Co-developed-by: Ackerley Tng <redacted> Signed-off-by: Ackerley Tng <redacted>
Reviewed-by: Binbin Wu <redacted> One nit below.
quoted hunk ↗ jump to hunk
--- Documentation/virt/kvm/api.rst | 7 +++++++ include/linux/kvm_host.h | 6 ++++++ virt/kvm/guest_memfd.c | 26 ++++++++++++++++++++++++++ virt/kvm/kvm_main.c | 12 +++++++++++- 4 files changed, 50 insertions(+), 1 deletion(-)diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst index e0430cc750c9e..90a29424c54c8 100644 --- a/Documentation/virt/kvm/api.rst +++ b/Documentation/virt/kvm/api.rst@@ -6382,6 +6382,11 @@ KVM_SET_USER_MEMORY_REGION2, e.g. shared memory can be lazily mapped/allocated on-demand. When mapping a gfn into the guest, KVM selects shared vs. private, i.e consumes +userspace_addr vs. guest_memfd, based on the state in guest_memfd, which is the +sole authority on private vs. shared memory. See :ref:`KVM_CREATE_GUEST_MEMFD` +to find out more about the creation-time shared/private status. + +If in-place conversion is disabled, KVM selects shared vs. private, i.e consumes
Nit: i.e -> i.e.
quoted hunk ↗ jump to hunk
userspace_addr vs. guest_memfd, based on the gfn's KVM_MEMORY_ATTRIBUTE_PRIVATE state. At VM creation time, all memory is shared, i.e. the PRIVATE attribute is '0' for all gfns. Userspace can control whether memory is shared/private by@@ -6429,6 +6434,8 @@ the state of a gfn/page as needed.