Re: [PATCH v10 09/41] KVM: guest_memfd: Filter both shared and private when invalidating
From: David Hildenbrand (Arm)
Date: Mon Aug 10 2026 - 05:12:05 EST
On 8/7/26 23:52, Ackerley Tng via B4 Relay wrote:
> From: Ackerley Tng <ackerleytng@xxxxxxxxxx>
>
> Before conversion, a guest_memfd could be either all shared, or all
You mean "in-place conversion support" ?
> private, configured at creation time using the INIT_SHARED flag. Hence,
> when zapping pages from stage 2 page tables, guest_memfd can filter which
> to zap based on the initial shared/private state.
>
> With conversion, guest_memfd tracks shared/private state on a per-page
Same here.
> level, so a range can contain both private and shared pages. Zap both
> private and shared pages for simplicity.
>
> An alternative would be to iterate guest_memfd attributes and only zap both
> if shared and private pages exist within the range. Setting both the shared
> and private filters lets the zapping logic do that iteration instead.
I mean, we just want to zap anything that belongs to guest_memfd, independent of
shared vs. private, really?
IOW, it's not about shared vs. private, but really about zapping anything that
belongs to guest_memfd.
So, couldn't there just be a KVM_FILTER_GMEM thingy instead?
But I didn't quite digest how these filters are used.
I can see that kvm_gfn_range_filter_to_root_types() does some magic to them, but
I am not a KVM MMU expert to know what KVM_MIRROR_ROOTS would mean.
--
Cheers,
David