From: Ackerley Tng via B4 Relay <devnull+ackerleytng.google.com@kernel.org>
To: aik@amd.com, andrew.jones@linux.dev, binbin.wu@linux.intel.com,
brauner@kernel.org, chao.p.peng@linux.intel.com,
david@kernel.org, jmattson@google.com, jthoughton@google.com,
michael.roth@amd.com, oupton@kernel.org, pankaj.gupta@amd.com,
qperret@google.com, rick.p.edgecombe@intel.com,
rientjes@google.com, shivankg@amd.com, steven.price@arm.com,
tabba@google.com, willy@infradead.org, wyihan@google.com,
yan.y.zhao@intel.com, forkloop@google.com, pratyush@kernel.org,
suzuki.poulose@arm.com, aneesh.kumar@kernel.org,
liam@infradead.org, Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <seanjc@google.com>,
Thomas Gleixner <tglx@kernel.org>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Shuah Khan <shuah@kernel.org>,
Vishal Annapurve <vannapurve@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Chris Li <chrisl@kernel.org>, Kairui Song <kasong@tencent.com>,
Kemeng Shi <shikemeng@huaweicloud.com>,
Nhat Pham <nphamcs@gmail.com>, Barry Song <baohua@kernel.org>,
Axel Rasmussen <axelrasmussen@google.com>,
Yuanchu Xie <yuanchu@google.com>, Wei Xu <weixugc@google.com>,
Youngjun Park <youngjun.park@lge.com>,
Qi Zheng <qi.zheng@linux.dev>,
Shakeel Butt <shakeel.butt@linux.dev>,
Kiryl Shutsemau <kas@kernel.org>,
Baoquan He <baoquan.he@linux.dev>,
Jason Gunthorpe <jgg@ziepe.ca>,
Vlastimil Babka <vbabka@kernel.org>,
Baoquan He <baoquan.he@linux.dev>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-trace-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-mm@kvack.org,
linux-coco@lists.linux.dev,
Ackerley Tng <ackerleytng@google.com>
Subject: [PATCH v8 00/46] guest_memfd: In-place conversion support
Date: Thu, 18 Jun 2026 17:31:37 -0700 [thread overview]
Message-ID: <20260618-gmem-inplace-conversion-v8-0-9d2959357853@google.com> (raw)
This is v8 of guest_memfd in-place conversion support.
Up till now, guest_memfd supports the entire inode worth of memory being
used as all-shared, or all-private. CoCo VMs may request guest memory to be
converted between private and shared states, and the only way to support
that currently would be to have the userspace VMM provide two sources of
backing memory from completely different areas of physical memory.
pKVM has a use case for in-place sharing: the guest and host may be
cooperating on given data, and pKVM doesn't protect data through
encryption, so copying that given data between different areas of physical
memory as part of conversions would be unnecessary work.
This series also serves as a foundation for guest_memfd huge page
support. Now, guest_memfd only supports PAGE_SIZE pages, so if two sources
of backing memory are used, the userspace VMM could maintain a steady total
memory utilized by punching out the pages that are not used. When huge
pages are available in guest_memfd, even if the backing memory source
supports hole punching within a huge page, punching out pages to maintain
the total memory utilized by a VM would be introducing lots of
fragmentation.
In-place conversion avoids fragmentation by allowing the same physical
memory to be used for both shared and private memory, with guest_memfd
tracks the shared/private status of all the pages at a per-page
granularity.
The central principle, which guest_memfd continues to uphold, is that any
guest-private page will not be mappable to host userspace. All pages will
be mmap()-able in host userspace, but accesses to guest-private pages (as
tracked by guest_memfd) will result in a SIGBUS.
This series introduces a guest_memfd ioctl (not kvm, vm or vcpu, but
guest_memfd ioctl) that allows userspace to set memory
attributes (shared/private) directly through the guest_memfd. This is the
appropriate interface because shared/private-ness is a property of memory
and hence the request should be sent directly to the memory provider -
guest_memfd.
Tested with both CONFIG_KVM_VM_MEMORY_ATTRIBUTES enabled and disabled:
+ tools/testing/selftests/kvm/guest_memfd_test.c
+ tools/testing/selftests/kvm/pre_fault_memory_test.c
+ tools/testing/selftests/kvm/x86/guest_memfd_conversions_test.c
+ tools/testing/selftests/kvm/x86/private_mem_conversions_test.c
+ tools/testing/selftests/kvm/x86/private_mem_kvm_exits_test.c
Updates for this revision:
+ Updated the series to _not_ deprecate all of VM memory attributes, but
only deprecate tracking of the PRIVATE attributes in VM memory
attributes. This takes into account upcoming RWX attributes support,
which will be tracked at the VM level.
+ Reshuffled the earlier commits that deal with preparing KVM to stop
seeing VM memory attributes as the only source of attributes.
+ Addressed comments from v7
TODOs
+ Retest with TDX selftests. v7 was tested with TDX [12], but the setup there was
wrong. Conversions were successful (no errors), but the shared memory being
tested is actually in a completely different host physical page.
+ Retest with SNP selftests. v6 was tested with SNP, I ported that to v7
and those ran fine too. Just need to double-check for v8.
This series is based on kvm-x86/next, and here's the tree for your convenience:
https://github.com/googleprodkernel/linux-cc/commits/guest_memfd-inplace-conversion-v8
Older series:
+ RFCv7 is at [11]
+ RFCv6 is at [10]
+ RFCv5 is at [8]
+ RFCv4 is at [7]
+ RFCv3 is at [6]
+ RFCv2 is at [5]
+ RFCv1 is at [4]
+ Previous versions of this feature, part of other series, are available at
[1][2][3].
[1] https://lore.kernel.org/all/bd163de3118b626d1005aa88e71ef2fb72f0be0f.1726009989.git.ackerleytng@google.com/
[2] https://lore.kernel.org/all/20250117163001.2326672-6-tabba@google.com/
[3] https://lore.kernel.org/all/b784326e9ccae6a08388f1bf39db70a2204bdc51.1747264138.git.ackerleytng@google.com/
[4] https://lore.kernel.org/all/cover.1760731772.git.ackerleytng@google.com/T/
[5] https://lore.kernel.org/all/cover.1770071243.git.ackerleytng@google.com/T/
[6] https://lore.kernel.org/r/20260313-gmem-inplace-conversion-v3-0-5fc12a70ec89@google.com/T/
[7] https://lore.kernel.org/all/20260326-gmem-inplace-conversion-v4-0-e202fe950ffd@google.com/T/
[8] https://lore.kernel.org/r/20260428-gmem-inplace-conversion-v5-0-d8608ccfca22@google.com
[9] https://lore.kernel.org/all/20260414-selftest-global-metadata-v1-0-fd223922bc57@google.com/T/
[10] https://lore.kernel.org/r/20260507-gmem-inplace-conversion-v6-0-91ab5a8b19a4@google.com
[11] https://lore.kernel.org/r/20260522-gmem-inplace-conversion-v7-0-2f0fae496530@google.com
[12] https://lore.kernel.org/all/20260605134153.204152-1-ackerleytng@google.com/
Signed-off-by: Ackerley Tng <ackerleytng@google.com>
---
Ackerley Tng (27):
KVM: Make CONFIG_KVM_VM_MEMORY_ATTRIBUTES selectable
KVM: Enumerate support for PRIVATE memory iff kvm_arch_has_private_mem is defined
KVM: guest_memfd: Introduce function to check GFN private/shared status
KVM: guest_memfd: Only prepare folios for private pages
KVM: guest_memfd: Add base support for KVM_SET_MEMORY_ATTRIBUTES2
KVM: guest_memfd: Ensure pages are not in use before conversion
KVM: guest_memfd: Call arch invalidate hooks on conversion
KVM: guest_memfd: Return early if range already has requested attributes
KVM: guest_memfd: Advertise KVM_SET_MEMORY_ATTRIBUTES2 ioctl
KVM: guest_memfd: Handle lru_add fbatch refcounts during conversion safety check
KVM: guest_memfd: Use actual size for invalidation in kvm_gmem_release()
KVM: guest_memfd: Determine invalidation filter from memory attributes
KVM: guest_memfd: Zero page while getting pfn
KVM: TDX: Make source page optional for KVM_TDX_INIT_MEM_REGION
KVM: guest_memfd: Make in-place conversion the default
KVM: selftests: Test basic single-page conversion flow
KVM: selftests: Test conversion flow when INIT_SHARED
KVM: selftests: Test conversion precision in guest_memfd
KVM: selftests: Test conversion before allocation
KVM: selftests: Convert with allocated folios in different layouts
KVM: selftests: Test that truncation does not change shared/private status
KVM: selftests: Add helpers to pin pages with CONFIG_GUP_TEST
KVM: selftests: Test conversion with elevated page refcount
KVM: selftests: Reset shared memory after hole-punching
KVM: selftests: Provide function to look up guest_memfd details from gpa
KVM: selftests: Make TEST_EXPECT_SIGBUS thread-safe
KVM: selftests: Update private_mem_conversions_test to mmap() guest_memfd
Michael Roth (1):
KVM: SEV: Make 'uaddr' parameter optional for KVM_SEV_SNP_LAUNCH_UPDATE
Sean Christopherson (18):
KVM: guest_memfd: Introduce per-gmem attributes, use to guard user mappings
KVM: Rename KVM_GENERIC_MEMORY_ATTRIBUTES to KVM_VM_MEMORY_ATTRIBUTES
KVM: Move KVM_VM_MEMORY_ATTRIBUTES config definition to x86
KVM: Decouple kvm_has_arch_private_mem from CONFIG_KVM_VM_MEMORY_ATTRIBUTES
KVM: Rename memory attribute APIs to prepare for in-place gmem conversion
KVM: Provide generic interface for checking memory private/shared status
KVM: guest_memfd: Wire up core private/shared attribute interfaces
KVM: Consolidate private memory and guest_memfd ifdeffery in kvm_host.h
KVM: guest_memfd: Enable INIT_SHARED on guest_memfd for x86 Coco VMs
KVM: selftests: Create gmem fd before "regular" fd when adding memslot
KVM: selftests: Rename guest_memfd{,_offset} to gmem_{fd,offset}
KVM: selftests: Add support for mmap() on guest_memfd in core library
KVM: selftests: Add selftests global for guest memory attributes capability
KVM: selftests: Add helpers for calling ioctls on guest_memfd
KVM: selftests: Test that shared/private status is consistent across processes
KVM: selftests: Provide common function to set memory attributes
KVM: selftests: Check fd/flags provided to mmap() when setting up memslot
KVM: selftests: Update private memory exits test to work with per-gmem attributes
Documentation/virt/kvm/api.rst | 78 +++-
.../virt/kvm/x86/amd-memory-encryption.rst | 13 +-
Documentation/virt/kvm/x86/intel-tdx.rst | 4 +
arch/x86/include/asm/kvm_host.h | 4 +-
arch/x86/kvm/Kconfig | 15 +-
arch/x86/kvm/mmu/mmu.c | 8 +-
arch/x86/kvm/svm/sev.c | 16 +-
arch/x86/kvm/vmx/tdx.c | 11 +-
arch/x86/kvm/x86.c | 15 +-
include/linux/kvm_host.h | 74 +--
include/trace/events/kvm.h | 4 +-
include/uapi/linux/kvm.h | 16 +
mm/swap.c | 2 +
tools/testing/selftests/kvm/Makefile.kvm | 1 +
tools/testing/selftests/kvm/include/kvm_util.h | 139 +++++-
tools/testing/selftests/kvm/include/test_util.h | 34 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 164 ++++---
tools/testing/selftests/kvm/lib/test_util.c | 7 -
.../kvm/x86/guest_memfd_conversions_test.c | 509 +++++++++++++++++++++
.../kvm/x86/private_mem_conversions_test.c | 53 ++-
.../selftests/kvm/x86/private_mem_kvm_exits_test.c | 36 +-
virt/kvm/Kconfig | 4 +-
virt/kvm/guest_memfd.c | 474 +++++++++++++++++--
virt/kvm/kvm_main.c | 86 +++-
24 files changed, 1547 insertions(+), 220 deletions(-)
---
base-commit: b7fbe9a1bf9ee6c967ef77d366ca58c35fcf1887
change-id: 20260225-gmem-inplace-conversion-bd0dbd39753a
Best regards,
--
Ackerley Tng <ackerleytng@google.com>
next reply other threads:[~2026-06-19 0:31 UTC|newest]
Thread overview: 189+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-19 0:31 Ackerley Tng via B4 Relay [this message]
2026-06-19 0:31 ` [PATCH v8 01/46] KVM: guest_memfd: Introduce per-gmem attributes, use to guard user mappings Ackerley Tng via B4 Relay
2026-06-22 9:08 ` Binbin Wu
2026-06-23 1:37 ` Sean Christopherson
2026-06-23 2:14 ` Binbin Wu
2026-06-24 0:09 ` Ackerley Tng
2026-06-19 0:31 ` [PATCH v8 02/46] KVM: Rename KVM_GENERIC_MEMORY_ATTRIBUTES to KVM_VM_MEMORY_ATTRIBUTES Ackerley Tng via B4 Relay
2026-06-23 2:48 ` Binbin Wu
2026-06-30 10:45 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 03/46] KVM: Move KVM_VM_MEMORY_ATTRIBUTES config definition to x86 Ackerley Tng via B4 Relay
2026-06-23 2:48 ` Binbin Wu
2026-06-30 10:45 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 04/46] KVM: Decouple kvm_has_arch_private_mem from CONFIG_KVM_VM_MEMORY_ATTRIBUTES Ackerley Tng via B4 Relay
2026-06-19 8:10 ` Fuad Tabba
2026-06-23 2:51 ` Binbin Wu
2026-06-24 0:13 ` Ackerley Tng
2026-06-24 15:12 ` Sean Christopherson
2026-06-30 10:47 ` Xiaoyao Li
2026-06-30 13:06 ` Sean Christopherson
2026-06-30 16:24 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 05/46] KVM: Make CONFIG_KVM_VM_MEMORY_ATTRIBUTES selectable Ackerley Tng via B4 Relay
2026-06-19 8:12 ` Fuad Tabba
2026-06-19 12:51 ` Julian Braha
2026-06-23 0:16 ` Sean Christopherson
2026-06-24 0:14 ` Ackerley Tng
2026-06-30 10:55 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 06/46] KVM: Enumerate support for PRIVATE memory iff kvm_arch_has_private_mem is defined Ackerley Tng via B4 Relay
2026-06-23 3:10 ` Binbin Wu
2026-07-01 9:19 ` Xiaoyao Li
2026-07-01 16:55 ` Sean Christopherson
2026-06-19 0:31 ` [PATCH v8 07/46] KVM: Rename memory attribute APIs to prepare for in-place gmem conversion Ackerley Tng via B4 Relay
2026-06-19 8:16 ` Fuad Tabba
2026-06-23 4:55 ` Binbin Wu
2026-06-24 13:44 ` Ackerley Tng
2026-06-30 15:22 ` Xiaoyao Li
2026-06-30 17:30 ` Sean Christopherson
2026-07-01 7:01 ` Xiaoyao Li
2026-07-01 15:07 ` Sean Christopherson
2026-06-19 0:31 ` [PATCH v8 08/46] KVM: Provide generic interface for checking memory private/shared status Ackerley Tng via B4 Relay
2026-06-19 8:19 ` Fuad Tabba
2026-06-19 8:21 ` Fuad Tabba
2026-06-19 9:57 ` Suzuki K Poulose
2026-06-24 14:18 ` Ackerley Tng
2026-07-01 7:22 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 09/46] KVM: guest_memfd: Introduce function to check GFN " Ackerley Tng via B4 Relay
2026-06-19 8:25 ` Fuad Tabba
2026-06-23 5:25 ` Binbin Wu
2026-06-24 14:38 ` Ackerley Tng
2026-06-25 1:39 ` Binbin Wu
2026-07-16 17:20 ` Ackerley Tng
2026-06-30 12:19 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 10/46] KVM: guest_memfd: Wire up core private/shared attribute interfaces Ackerley Tng via B4 Relay
2026-06-19 8:34 ` Fuad Tabba
2026-06-23 6:15 ` Binbin Wu
2026-06-24 20:44 ` Ackerley Tng
2026-06-19 0:31 ` [PATCH v8 11/46] KVM: Consolidate private memory and guest_memfd ifdeffery in kvm_host.h Ackerley Tng via B4 Relay
2026-06-19 11:02 ` Fuad Tabba
2026-06-23 6:19 ` Binbin Wu
2026-06-30 13:59 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 12/46] KVM: guest_memfd: Only prepare folios for private pages Ackerley Tng via B4 Relay
2026-06-23 6:48 ` Binbin Wu
2026-07-01 8:05 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 13/46] KVM: guest_memfd: Add base support for KVM_SET_MEMORY_ATTRIBUTES2 Ackerley Tng via B4 Relay
2026-06-19 9:25 ` Fuad Tabba
2026-06-23 0:22 ` Sean Christopherson
2026-06-23 8:20 ` Fuad Tabba
2026-06-24 21:03 ` Ackerley Tng
2026-06-23 7:38 ` Binbin Wu
2026-06-24 21:10 ` Ackerley Tng
2026-07-01 15:35 ` Sean Christopherson
2026-07-04 23:38 ` Suzuki K Poulose
2026-07-06 18:17 ` Ackerley Tng
2026-07-06 22:35 ` Suzuki K Poulose
2026-06-19 0:31 ` [PATCH v8 14/46] KVM: guest_memfd: Ensure pages are not in use before conversion Ackerley Tng via B4 Relay
2026-06-19 0:31 ` [PATCH v8 15/46] KVM: guest_memfd: Call arch invalidate hooks on conversion Ackerley Tng via B4 Relay
2026-06-19 10:09 ` Fuad Tabba
2026-06-23 1:15 ` Sean Christopherson
2026-06-23 8:58 ` Fuad Tabba
2026-06-24 17:46 ` Ackerley Tng
2026-06-24 22:15 ` Suzuki K Poulose
2026-06-25 6:48 ` Fuad Tabba
2026-06-19 0:31 ` [PATCH v8 16/46] KVM: guest_memfd: Return early if range already has requested attributes Ackerley Tng via B4 Relay
2026-06-19 0:31 ` [PATCH v8 17/46] KVM: guest_memfd: Advertise KVM_SET_MEMORY_ATTRIBUTES2 ioctl Ackerley Tng via B4 Relay
2026-06-19 10:35 ` Fuad Tabba
2026-06-23 9:14 ` Binbin Wu
2026-07-01 9:03 ` Xiaoyao Li
2026-07-01 16:09 ` Sean Christopherson
2026-07-02 10:51 ` Xiaoyao Li
2026-06-19 0:31 ` [PATCH v8 18/46] KVM: guest_memfd: Handle lru_add fbatch refcounts during conversion safety check Ackerley Tng via B4 Relay
2026-06-23 9:48 ` Binbin Wu
2026-06-24 17:01 ` Sean Christopherson
2026-06-24 16:57 ` Sean Christopherson
2026-06-24 22:25 ` Ackerley Tng
2026-06-25 0:35 ` Sean Christopherson
2026-06-25 12:57 ` David Hildenbrand (Arm)
2026-06-25 15:40 ` Sean Christopherson
2026-06-19 0:31 ` [PATCH v8 19/46] KVM: guest_memfd: Use actual size for invalidation in kvm_gmem_release() Ackerley Tng via B4 Relay
2026-06-19 10:46 ` Fuad Tabba
2026-06-19 0:31 ` [PATCH v8 20/46] KVM: guest_memfd: Determine invalidation filter from memory attributes Ackerley Tng via B4 Relay
2026-06-19 0:31 ` [PATCH v8 21/46] KVM: guest_memfd: Zero page while getting pfn Ackerley Tng via B4 Relay
2026-06-19 10:51 ` Fuad Tabba
2026-06-23 8:56 ` Yan Zhao
2026-06-24 22:30 ` Ackerley Tng
2026-06-19 0:31 ` [PATCH v8 22/46] KVM: SEV: Make 'uaddr' parameter optional for KVM_SEV_SNP_LAUNCH_UPDATE Ackerley Tng via B4 Relay
2026-06-19 11:01 ` Fuad Tabba
2026-06-24 22:31 ` Ackerley Tng
2026-06-19 0:32 ` [PATCH v8 23/46] KVM: TDX: Make source page optional for KVM_TDX_INIT_MEM_REGION Ackerley Tng via B4 Relay
2026-06-19 11:09 ` Fuad Tabba
2026-06-22 7:18 ` Yan Zhao
2026-06-23 1:24 ` Sean Christopherson
2026-06-22 6:57 ` Yan Zhao
2026-06-23 1:22 ` Sean Christopherson
2026-06-23 5:16 ` Yan Zhao
2026-06-23 8:41 ` Yan Zhao
2026-06-24 22:31 ` Sean Christopherson
2026-06-24 23:00 ` Ackerley Tng
2026-06-25 2:25 ` Yan Zhao
2026-06-26 0:07 ` Ackerley Tng
2026-06-26 1:17 ` Yan Zhao
2026-06-26 15:28 ` Ackerley Tng
2026-06-29 9:40 ` Yan Zhao
2026-06-30 0:00 ` Ackerley Tng
2026-06-30 2:09 ` Yan Zhao
2026-06-30 0:35 ` Sean Christopherson
2026-06-30 2:21 ` Yan Zhao
2026-06-30 13:27 ` Sean Christopherson
2026-07-01 6:21 ` Yan Zhao
2026-06-19 0:32 ` [PATCH v8 24/46] KVM: guest_memfd: Make in-place conversion the default Ackerley Tng via B4 Relay
2026-06-22 4:53 ` Yan Zhao
2026-06-25 0:05 ` Ackerley Tng
2026-06-25 0:41 ` Sean Christopherson
2026-06-25 1:51 ` Yan Zhao
2026-06-25 10:57 ` Yan Zhao
2026-06-25 14:36 ` [PATCH v8 24/46] KVM: guest_memfd: Make in-place conversion the default\ Sean Christopherson
2026-06-26 0:29 ` Yan Zhao
2026-06-26 19:06 ` Sean Christopherson
2026-06-29 11:39 ` Yan Zhao
2026-07-01 11:07 ` Xiaoyao Li
2026-07-01 13:53 ` Sean Christopherson
2026-06-25 1:21 ` [PATCH v8 24/46] KVM: guest_memfd: Make in-place conversion the default Yan Zhao
2026-06-25 18:20 ` Ackerley Tng
2026-06-26 0:04 ` Yan Zhao
2026-06-24 18:57 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 25/46] KVM: guest_memfd: Enable INIT_SHARED on guest_memfd for x86 Coco VMs Ackerley Tng via B4 Relay
2026-07-01 11:18 ` Xiaoyao Li
2026-06-19 0:32 ` [PATCH v8 26/46] KVM: selftests: Create gmem fd before "regular" fd when adding memslot Ackerley Tng via B4 Relay
2026-06-19 0:32 ` [PATCH v8 27/46] KVM: selftests: Rename guest_memfd{,_offset} to gmem_{fd,offset} Ackerley Tng via B4 Relay
2026-06-19 0:32 ` [PATCH v8 28/46] KVM: selftests: Add support for mmap() on guest_memfd in core library Ackerley Tng via B4 Relay
2026-06-24 19:07 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 29/46] KVM: selftests: Add selftests global for guest memory attributes capability Ackerley Tng via B4 Relay
2026-06-24 19:26 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 30/46] KVM: selftests: Add helpers for calling ioctls on guest_memfd Ackerley Tng via B4 Relay
2026-06-24 19:26 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 31/46] KVM: selftests: Test basic single-page conversion flow Ackerley Tng via B4 Relay
2026-06-24 19:45 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 32/46] KVM: selftests: Test conversion flow when INIT_SHARED Ackerley Tng via B4 Relay
2026-06-24 19:55 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 33/46] KVM: selftests: Test conversion precision in guest_memfd Ackerley Tng via B4 Relay
2026-06-25 6:57 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 34/46] KVM: selftests: Test conversion before allocation Ackerley Tng via B4 Relay
2026-06-25 7:00 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 35/46] KVM: selftests: Convert with allocated folios in different layouts Ackerley Tng via B4 Relay
2026-06-25 7:03 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 36/46] KVM: selftests: Test that truncation does not change shared/private status Ackerley Tng via B4 Relay
2026-06-25 7:03 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 37/46] KVM: selftests: Test that shared/private status is consistent across processes Ackerley Tng via B4 Relay
2026-06-25 7:14 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 38/46] KVM: selftests: Add helpers to pin pages with CONFIG_GUP_TEST Ackerley Tng via B4 Relay
2026-06-25 7:40 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 39/46] KVM: selftests: Test conversion with elevated page refcount Ackerley Tng via B4 Relay
2026-06-25 8:04 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 40/46] KVM: selftests: Reset shared memory after hole-punching Ackerley Tng via B4 Relay
2026-06-25 8:46 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 41/46] KVM: selftests: Provide function to look up guest_memfd details from gpa Ackerley Tng via B4 Relay
2026-06-25 8:58 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 42/46] KVM: selftests: Provide common function to set memory attributes Ackerley Tng via B4 Relay
2026-06-25 9:09 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 43/46] KVM: selftests: Check fd/flags provided to mmap() when setting up memslot Ackerley Tng via B4 Relay
2026-06-25 9:20 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 44/46] KVM: selftests: Make TEST_EXPECT_SIGBUS thread-safe Ackerley Tng via B4 Relay
2026-06-25 9:30 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 45/46] KVM: selftests: Update private_mem_conversions_test to mmap() guest_memfd Ackerley Tng via B4 Relay
2026-06-25 9:43 ` Fuad Tabba
2026-06-19 0:32 ` [PATCH v8 46/46] KVM: selftests: Update private memory exits test to work with per-gmem attributes Ackerley Tng via B4 Relay
2026-06-25 9:56 ` Fuad Tabba
2026-06-19 12:28 ` [PATCH v8 00/46] guest_memfd: In-place conversion support Garg, Shivank
2026-06-25 0:19 ` Ackerley Tng
2026-06-23 2:39 ` Xiaoyao Li
2026-06-25 0:19 ` Ackerley Tng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260618-gmem-inplace-conversion-v8-0-9d2959357853@google.com \
--to=devnull+ackerleytng.google.com@kernel.org \
--cc=ackerleytng@google.com \
--cc=aik@amd.com \
--cc=akpm@linux-foundation.org \
--cc=andrew.jones@linux.dev \
--cc=aneesh.kumar@kernel.org \
--cc=axelrasmussen@google.com \
--cc=baohua@kernel.org \
--cc=baoquan.he@linux.dev \
--cc=binbin.wu@linux.intel.com \
--cc=bp@alien8.de \
--cc=brauner@kernel.org \
--cc=chao.p.peng@linux.intel.com \
--cc=chrisl@kernel.org \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=david@kernel.org \
--cc=forkloop@google.com \
--cc=hpa@zytor.com \
--cc=jgg@ziepe.ca \
--cc=jmattson@google.com \
--cc=jthoughton@google.com \
--cc=kas@kernel.org \
--cc=kasong@tencent.com \
--cc=kvm@vger.kernel.org \
--cc=liam@infradead.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=michael.roth@amd.com \
--cc=mingo@redhat.com \
--cc=nphamcs@gmail.com \
--cc=oupton@kernel.org \
--cc=pankaj.gupta@amd.com \
--cc=pbonzini@redhat.com \
--cc=pratyush@kernel.org \
--cc=qi.zheng@linux.dev \
--cc=qperret@google.com \
--cc=rick.p.edgecombe@intel.com \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=seanjc@google.com \
--cc=shakeel.butt@linux.dev \
--cc=shikemeng@huaweicloud.com \
--cc=shivankg@amd.com \
--cc=shuah@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=steven.price@arm.com \
--cc=suzuki.poulose@arm.com \
--cc=tabba@google.com \
--cc=tglx@kernel.org \
--cc=vannapurve@google.com \
--cc=vbabka@kernel.org \
--cc=weixugc@google.com \
--cc=willy@infradead.org \
--cc=wyihan@google.com \
--cc=x86@kernel.org \
--cc=yan.y.zhao@intel.com \
--cc=youngjun.park@lge.com \
--cc=yuanchu@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox