On 8/7/26 23:52, Ackerley Tng via B4 Relay wrote:
> From: Ackerley Tng <[email protected]>
> 
> 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

Reply via email to