Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Fred Griffoul" <griffoul@gmail.com>,
	"Ackerley Tng" <ackerleytng@google.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Sean Christopherson" <seanjc@google.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Kevin Tian" <kevin.tian@intel.com>
Cc: "Alex Williamson" <alex@shazbot.org>,
	"Alexander Graf" <graf@amazon.de>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Alexey Kardashevskiy" <aik@amd.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
	"Ashish Kalra" <ashish.kalra@amd.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Baolu Lu" <baolu.lu@linux.intel.com>,
	"Bill Wendling" <morbo@google.com>,
	"Borislav Petkov" <bp@alien8.de>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Christian Brauner" <brauner@kernel.org>,
	"Christian König" <christian.koenig@amd.com>,
	"Connor Williamson" <connordw@amazon.com>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Dave Jiang" <dave.jiang@intel.com>,
	"David Hildenbrand" <david@kernel.org>,
	"David Rientjes" <rientjes@google.com>,
	"David Woodhouse" <dwmw2@infradead.org>,
	"Erdem Aktas" <erdemaktas@google.com>,
	"Frank van der Linden" <fvdl@google.com>,
	"Gregory Price" <gourry@gourry.net>,
	"H . Peter Anvin" <hpa@zytor.com>,
	"Hugh Dickins" <hughd@google.com>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Jacob Pan" <jacob.pan@linux.microsoft.com>,
	"James Houghton" <jthoughton@google.com>,
	"Jan Kara" <jack@suse.cz>, "Jianxiong Gao" <jxgao@google.com>,
	"Joerg Roedel" <joro@8bytes.org>,
	"Joey Gouly" <joey.gouly@arm.com>,
	"John Starks" <John.Starks@microsoft.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Justin Stitt" <justinstitt@google.com>,
	"Lorenzo Stoakes" <ljs@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	"Michael Roth" <michael.roth@amd.com>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Nicolin Chen" <nicolinc@nvidia.com>,
	"Oliver Upton" <oupton@kernel.org>,
	"Pratyush Yadav" <pratyush@kernel.org>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Samiullah Khawaja" <skhawaja@google.com>,
	"Shuah Khan" <shuah@kernel.org>,
	"Steffen Eiden" <seiden@linux.ibm.com>,
	"Steven Price" <steven.price@arm.com>,
	"Suzuki K Poulose" <suzuki.poulose@arm.com>,
	"Tarun Sahu" <tarunsahu@google.com>,
	"Thomas Gleixner" <tglx@kernel.org>,
	"Tom Lendacky" <thomas.lendacky@amd.com>,
	"Tycho Andersen" <tycho@kernel.org>,
	"Vishal Annapurve" <vannapurve@google.com>,
	"Vlastimil Babka" <vbabka@kernel.org>,
	"Will Deacon" <will@kernel.org>,
	"Xu Yilun" <yilun.xu@linux.intel.com>,
	"Yan Zhao" <yan.y.zhao@intel.com>,
	"Zenghui Yu" <yuzenghui@huawei.com>,
	x86@kernel.org, "Shuah Khan" <skhan@linuxfoundation.org>,
	"Fuad Tabba" <fuad.tabba@linux.dev>,
	kvm@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [RFC PATCH 01/14] KVM: guest_memfd: Clamp the order of PFN mode blocks to what KVM can map
Date: Wed, 28 Oct 2026 15:48:29 +0000	[thread overview]
Message-ID: <sashiko-outbox-188083@kernel.org> (raw)
In-Reply-To: <20261027154649.91571-2-griffoul@gmail.com>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Critical] kvm: guest_memfd: race in __kvm_gmem_invalidate_start() due to late range expansion
- [High] kvm: guest_memfd: infinite loop in kvm_gmem_pfn_map_order() when PUD_ORDER == PMD_ORDER
- [High] KVM: guest_memfd: non-zero order passed to kvm_arch_gmem_make_private()
--

commit ec431028c58523e8ac8bc3e4a0b8d9a1a1868bb2
Author: Fred Griffoul <fgriffo@amazon.co.uk>

KVM: guest_memfd: Clamp the order of PFN mode blocks to what KVM can map

This commit clamps the mapping order returned for PFN-mode guest_memfd
files to block sizes supported by KVM where the gfn, file index, and pfn
share the same alignment and memory attributes. It also expands invalidation
ranges in PFN mode to 1G-aligned blocks so concurrent faults on the same
block retry.

> diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
> index 3c4bedceccfc2..be26bd16d4207 100644
> --- a/virt/kvm/guest_memfd.c
> +++ b/virt/kvm/guest_memfd.c

[ ... ]

> @@ -355,6 +360,16 @@ static void __kvm_gmem_invalidate_start(struct gmem_file *f, pgoff_t start,
>  
>  		flush |= kvm_mmu_unmap_gfn_range(kvm, &gfn_range);
>  
> +		/*
> +		 * In PFN mode, a fault may map a block of up to PUD_ORDER
> +		 * pages, sized before this invalidation (see
> +		 * kvm_gmem_pfn_map_order()): make faults anywhere in the
> +		 * blocks around the range retry.
> +		 */
> +		kvm_mmu_invalidate_range_add(kvm,
> +					     round_down(gfn_range.start, blk),
> +					     round_up(gfn_range.end, blk));

[Severity: Critical]
Does expanding the invalidation range after kvm_mmu_unmap_gfn_range() leave a
window where a concurrent fault can install a stale huge mapping?

In __kvm_gmem_invalidate_start(), gfn_range.may_block is true. When
kvm_mmu_unmap_gfn_range() runs, it registers only the unexpanded
[gfn_range.start, gfn_range.end) in kvm->mmu_invalidate_range_start and
kvm->mmu_invalidate_range_end before calling kvm_unmap_gfn_range():

virt/kvm/kvm_main.c:kvm_mmu_unmap_gfn_range() {
	kvm_mmu_invalidate_range_add(kvm, range->start, range->end);
	return kvm_unmap_gfn_range(kvm, range);
}

Because may_block is true, kvm_unmap_gfn_range() can yield kvm->mmu_lock
(for example via tdp_mmu_iter_cond_resched() in tdp_mmu_zap_leafs() or
cond_resched_rwlock_write() in __walk_slot_rmaps()). Meanwhile,
kvm->mmu_invalidate_seq is not incremented until kvm_mmu_invalidate_end().

If a vCPU fault on another gfn in the same 2M or 1G block already completed
kvm_gmem_get_pfn() with a large *max_order before the invalidation began, it
can acquire kvm->mmu_lock while kvm_unmap_gfn_range() has yielded the lock.
At that point mmu_invalidate_retry_gfn() checks only the unexpanded
range->start..range->end and sees the old mmu_invalidate_seq, so the fault
will not retry and can install a huge SPTE covering the range being revoked
or converted.

Should kvm_mmu_invalidate_range_add() with the blk-aligned range be called
before kvm_mmu_unmap_gfn_range()?

[ ... ]

> @@ -1535,6 +1550,44 @@ static struct folio *__kvm_gmem_get_pfn(struct file *file,
>  	return folio;
>  }
>  
> +/*
> + * The order a PFN mode block can be mapped at: the provider's order, no
> + * larger than the alignment of @gfn and @pfn to @index allows, rounded down to
> + * a page-table size, and never over pages that are not all shared or all
> + * private, since KVM maps a block with a single attribute.  Called with the
> + * invalidate lock held; an invalidation of any page of the block makes the
> + * fault retry (see __kvm_gmem_invalidate_start()).
> + */
> +static int kvm_gmem_pfn_map_order(struct inode *inode, pgoff_t index,
> +				  gfn_t gfn, kvm_pfn_t pfn, int order)
> +{
> +	u64 misalign = (gfn ^ index) | (pfn ^ index);
> +	u64 attrs;
> +
> +	if (WARN_ON_ONCE(order < 0))
> +		return 0;
> +
> +	order = min(order, PUD_ORDER);
> +	if (misalign)
> +		order = min_t(int, order, __ffs64(misalign));
> +
> +	if (order >= PUD_ORDER)
> +		order = PUD_ORDER;
> +	else if (order >= PMD_ORDER)
> +		order = PMD_ORDER;
> +	else
> +		return 0;
> +
> +	attrs = kvm_gmem_get_attributes(inode,
> +					mtree_load(&GMEM_I(inode)->attributes, index));
> +	while (order &&
> +	       !kvm_gmem_range_has_attributes(inode,
> +					      ALIGN_DOWN(index, 1UL << order),
> +					      1UL << order, attrs))
> +		order = order == PUD_ORDER ? PMD_ORDER : 0;

[Severity: High]
Can this while loop hang when PUD_ORDER equals PMD_ORDER?

On arm64 with 2-level page tables (CONFIG_PGTABLE_LEVELS == 2, such as 64K
pages with 42-bit VA or 16K pages with 36-bit VA),
arch/arm64/include/asm/pgtable-types.h includes
include/asm-generic/pgtable-nopmd.h, which defines PMD_SHIFT as PUD_SHIFT.
This makes PUD_ORDER equal to PMD_ORDER.

If a PFN-mode block of order >= PUD_ORDER has mixed shared/private
attributes, kvm_gmem_range_has_attributes() returns false and the loop
evaluates:

	order = order == PUD_ORDER ? PMD_ORDER : 0;

Since order == PUD_ORDER is true and PMD_ORDER == PUD_ORDER, order remains
non-zero and unchanged, spinning forever while holding the shared
filemap_invalidate_lock and kvm->srcu.

Would checking order > PMD_ORDER instead of order == PUD_ORDER avoid this?

> +	return order;
> +}
> +
>  int kvm_gmem_get_pfn(struct kvm *kvm, struct kvm_memory_slot *slot,
>  		     gfn_t gfn, kvm_pfn_t *pfn, int *max_order)
>  {
> @@ -1556,6 +1609,10 @@ int kvm_gmem_get_pfn(struct kvm *kvm, struct kvm_memory_slot *slot,
>  		goto out;
>  	}
>  
> +	if (kvm_gmem_is_pfn_mode(GMEM_I(file_inode(file))))
> +		*max_order = kvm_gmem_pfn_map_order(file_inode(file), index, gfn,
> +						    *pfn, *max_order);
> +
>  	if (kvm_arch_has_gmem_convert() &&
>  	    kvm_gmem_is_private_mem(file_inode(file), index))
>  		r = kvm_arch_gmem_make_private(kvm, gfn, *pfn,

[Severity: High]
What happens on SEV-SNP when kvm_gmem_pfn_map_order() returns a non-zero
order for a private range?

In kvm_gmem_get_pfn(), *max_order is now preserved up to PMD_ORDER or
PUD_ORDER in PFN mode (even when the caller passes max_order == NULL, since
max_order is redirected to &__order), and then passed to
kvm_arch_gmem_make_private() as:

	r = kvm_arch_gmem_make_private(kvm, gfn, *pfn,
				       (kvm_pfn_t)1 << *max_order);

However, the x86 implementation in arch/x86/kvm/svm/sev.c only supports
single-page conversions:

arch/x86/kvm/svm/sev.c:sev_gmem_make_private() {
	if (!sev_snp_guest(kvm))
		return 0;

	if (WARN_ON_ONCE(nr_pages != 1))
		return -EIO;
	...
}

In addition, gfn and *pfn are the faulting subpage's frame numbers rather
than the base of the aligned 2^(*max_order) block. Won't a PFN-mode provider
returning order >= PMD_ORDER for an SEV-SNP guest trigger WARN_ON_ONCE() and
fail with -EIO?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261027154649.91571-1-griffoul@gmail.com?part=1

  reply	other threads:[~2026-10-28 15:48 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-22 23:27 [PATCH RFC v2 00/50] guest_memfd alternative providers Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 01/50] KVM: guest_memfd: Split folio allocation and insertion in kvm_gmem_get_folio Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 02/50] KVM: guest_memfd: Route folio allocation through native provider operations Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 03/50] mm: shmem: Implement guest_memfd provider operations for tmpfs Ackerley Tng via B4 Relay
2026-10-23 23:31   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 04/50] KVM: guest_memfd: Support provider folio invalidation Ackerley Tng via B4 Relay
2026-10-23 23:31   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 05/50] KVM: guest_memfd: Support using resource provider Ackerley Tng via B4 Relay
2026-10-23 23:31   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 06/50] KVM: selftests: Add helper to create guest_memfd with a resource file Ackerley Tng via B4 Relay
2026-10-23 23:31   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 07/50] KVM: selftests: Test negative validation of resource_fd argument Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 08/50] KVM: selftests: Test rejection of unsupported filesystem for resource_fd Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 09/50] KVM: selftests: Test rejection of memfd " Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 10/50] KVM: selftests: Test rejection of swap tmpfs mounts Ackerley Tng via B4 Relay
2026-10-23 23:31   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 11/50] KVM: selftests: Test rejection of hugepage " Ackerley Tng via B4 Relay
2026-10-23 23:32   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 12/50] KVM: selftests: Test rejection of regular file in tmpfs mount Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 13/50] KVM: selftests: Test guest_memfd with tmpfs resource pool Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 14/50] KVM: selftests: Test guest_memfd resource pool sharing across instances Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 15/50] KVM: selftests: Test memory allocation against shared tmpfs resource pool Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 16/50] KVM: selftests: Test that shared tmpfs resource pool size limit is respected Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 17/50] KVM: selftests: Test guest execution with tmpfs-backed guest_memfd Ackerley Tng via B4 Relay
2026-10-23 23:32   ` sashiko-bot
2026-10-22 23:27 ` [PATCH RFC v2 18/50] KVM: selftests: Document testing TODOs Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 19/50] KVM: selftests: Test guest_memfd conversions with tmpfs backing Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 20/50] samples/kvm: Add a memory provider sample Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 21/50] samples/kvm: Remove donate, reclaim, and move operations from sample provider Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 22/50] samples/kvm: Remove readonly support " Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 23/50] samples/kvm: Remove child ownership tracking " Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 24/50] samples/kvm: Remove MPS_SETUP support " Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 25/50] samples/kvm: Remove MMAP_CAPABLE flag " Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 26/50] samples/kvm: Remove fixed address and length module parameters Ackerley Tng via B4 Relay
2026-10-22 23:27 ` [PATCH RFC v2 27/50] samples/kvm: Remove mem_provider_ops from sample provider Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 28/50] samples/kvm: Make provider files independent of a root pool Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 29/50] samples/kvm: Move set_present ioctl from device to provider file Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 30/50] KVM: selftests: Add basic test for sample memory provider Ackerley Tng via B4 Relay
2026-10-23 23:32   ` sashiko-bot
2026-10-22 23:28 ` [PATCH RFC v2 31/50] KVM: guest_memfd: Support getting PFNs for stage 2 from providers Ackerley Tng via B4 Relay
2026-10-23 17:23   ` Fred Griffoul
2026-10-29 13:49     ` Ackerley Tng
2026-10-23 17:42   ` Fred Griffoul
2026-10-22 23:28 ` [PATCH RFC v2 32/50] KVM: guest_memfd: Refactor error handling in kvm_gmem_fault_user_mapping Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 33/50] KVM: guest_memfd: Support mmap and user fault handling in PFN mode Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 34/50] KVM: guest_memfd: Skip checking outstanding references " Ackerley Tng via B4 Relay
2026-10-23 17:29   ` Fred Griffoul
2026-10-22 23:28 ` [PATCH RFC v2 35/50] KVM: guest_memfd: Support converting to shared " Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 36/50] KVM: guest_memfd: Support preallocating memory via fallocate " Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 37/50] KVM: guest_memfd: Clamp hole punch range to inode size Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 38/50] KVM: guest_memfd: Support reclaim during hole punch in PFN mode Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 39/50] KVM: guest_memfd: Support arch reclaim on inode destruction " Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 40/50] KVM: guest_memfd: Support put_pfn_range provider op " Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 41/50] KVM: guest_memfd: Add TODO for memory failure handling " Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 42/50] KVM: guest_memfd: Allow attaching PFN-backed providers Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 43/50] KVM: guest_memfd: Export kvm_gmem_revoke for provider-driven revocation Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 44/50] KVM: selftests: Test flag dependency of PFN_MODE on USE_RESOURCE Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 45/50] samples/kvm: Implement attach and release provider ops in sample provider Ackerley Tng via B4 Relay
2026-10-23 23:32   ` sashiko-bot
2026-10-22 23:28 ` [PATCH RFC v2 46/50] samples/kvm: Implement get_pfn provider operation Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 47/50] samples/kvm: Implement put_pfn_range " Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 48/50] samples/kvm: Support dynamic revocation via kvm_gmem_revoke Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 49/50] samples/kvm: Implement lookup_pfn_range provider operation Ackerley Tng via B4 Relay
2026-10-22 23:28 ` [PATCH RFC v2 50/50] KVM: selftests: Test guest_memfd conversions with sample memory provider backing Ackerley Tng via B4 Relay
2026-10-23 23:32   ` sashiko-bot
2026-10-27 15:46 ` [RFC PATCH 00/14] guest_memfd: Export guest_memfd files to iommufd Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 01/14] KVM: guest_memfd: Clamp the order of PFN mode blocks to what KVM can map Fred Griffoul
2026-10-28 15:48     ` sashiko-bot [this message]
2026-10-29 13:25     ` Ackerley Tng
2026-10-29 17:07       ` Frederic Griffoul
2026-10-27 15:46   ` [RFC PATCH 02/14] KVM: guest_memfd: Support read-only frames from PFN mode providers Fred Griffoul
2026-10-28 15:48     ` sashiko-bot
2026-10-27 15:46   ` [RFC PATCH 03/14] KVM: guest_memfd: Allow other subsystems to map guest_memfd files Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 04/14] KVM: guest_memfd: Keep truncated folios until the exports are updated Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 05/14] KVM: guest_memfd: Export PFN mode files Fred Griffoul
2026-10-28 15:48     ` sashiko-bot
2026-10-27 15:46   ` [RFC PATCH 06/14] KVM: guest_memfd: Report the size of holes in export lookups Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 07/14] KVM: guest_memfd: Update exports when pages are allocated Fred Griffoul
2026-10-28 15:48     ` sashiko-bot
2026-10-27 15:46   ` [RFC PATCH 08/14] iommufd: Track the domains of revocable pages in struct iopt_pages Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 09/14] iommufd: Map guest_memfd files Fred Griffoul
2026-10-28 15:48     ` sashiko-bot
2026-10-27 15:46   ` [RFC PATCH 10/14] iommufd/selftest: Add mock-domain IOVA queries Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 11/14] KVM: guest_memfd: Add kvm_gmem_restore() for PFN mode providers Fred Griffoul
2026-10-29 12:52     ` Ackerley Tng
2026-10-29 14:27       ` Frederic Griffoul
2026-10-27 15:46   ` [RFC PATCH 12/14] samples/kvm: Add read-only pages and large blocks to the sample provider Fred Griffoul
2026-10-27 15:46   ` [RFC PATCH 13/14] samples/kvm: Back absent pages on demand in " Fred Griffoul
2026-10-28 15:48     ` sashiko-bot
2026-10-29 13:03     ` Ackerley Tng
2026-10-27 15:46   ` [RFC PATCH 14/14] KVM: selftests: Test guest_memfd mapped by iommufd Fred Griffoul
2026-10-28 15:48     ` sashiko-bot
2026-10-29  5:52 ` [PATCH RFC v2 00/50] guest_memfd alternative providers Aneesh Kumar K.V

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=sashiko-outbox-188083@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=John.Starks@microsoft.com \
    --cc=ackerleytng@google.com \
    --cc=aik@amd.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex@shazbot.org \
    --cc=aneesh.kumar@kernel.org \
    --cc=ashish.kalra@amd.com \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=brauner@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=christian.koenig@amd.com \
    --cc=connordw@amazon.com \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=dave.jiang@intel.com \
    --cc=david@kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=erdemaktas@google.com \
    --cc=fuad.tabba@linux.dev \
    --cc=fvdl@google.com \
    --cc=gourry@gourry.net \
    --cc=graf@amazon.de \
    --cc=griffoul@gmail.com \
    --cc=hpa@zytor.com \
    --cc=hughd@google.com \
    --cc=jack@suse.cz \
    --cc=jacob.pan@linux.microsoft.com \
    --cc=jgg@ziepe.ca \
    --cc=joey.gouly@arm.com \
    --cc=joro@8bytes.org \
    --cc=jthoughton@google.com \
    --cc=justinstitt@google.com \
    --cc=jxgao@google.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=maz@kernel.org \
    --cc=michael.roth@amd.com \
    --cc=mingo@redhat.com \
    --cc=morbo@google.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nicolinc@nvidia.com \
    --cc=oupton@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=pratyush@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=rientjes@google.com \
    --cc=robin.murphy@arm.com \
    --cc=rppt@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=seanjc@google.com \
    --cc=seiden@linux.ibm.com \
    --cc=shuah@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=skhawaja@google.com \
    --cc=steven.price@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tarunsahu@google.com \
    --cc=tglx@kernel.org \
    --cc=thomas.lendacky@amd.com \
    --cc=tycho@kernel.org \
    --cc=vannapurve@google.com \
    --cc=vbabka@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=yan.y.zhao@intel.com \
    --cc=yilun.xu@linux.intel.com \
    --cc=yuzenghui@huawei.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