On 8/31/26 02:25, Ackerley Tng via B4 Relay wrote: > From: Sean Christopherson <[email protected]> > > When removing one or more folios from a guest_memfd instance, invalidate > both SHARED and PRIVATE mappings if in-place conversion is enabled, because > stating the obvious, KVM needs to ensure that all mappings to the folio(s) > are dropped. > > Opportunistically rename the helper to capture that it returns a filter for > all gfns in anticipation of zapping only the previous mapping types on > conversion. I.e. when doing in-place conversion to PRIVATE, only SHARED > mappings need to be zapped (ignoring that KVM would ideally not invalidate > ranges whose attributes aren't changing in the first place). > > Note, precisely zapping only the possible mapping types when in-place > conversion is disabled is important for functional correctness, not just > for performance. Specifically, if KVM zaps both when SHARED vs. PRIVATE is > tracked per-VM, then a PUNCH_HOLE operation on a PRIVATE guest_memfd will > incorrectly zap SHARED mappings that have nothing to do with that gmem > instance (because they're mapped via a VMA, not a gmem fd). > > The incorrect over-zapping of SHARED memory that doesn't belong to the gmem > fd requesting the zapping will be resolved in a later patch, where, if > in-place conversion is enabled, KVM will use both shared and private memory > from the guest_memfd. If both shared and private memory are from the > guest_memfd, invalidation will only zap memory belonging to the given gmem > instance. > > Signed-off-by: Sean Christopherson <[email protected]> > Signed-off-by: Ackerley Tng <[email protected]> > ---
Reviewed-by: David Hildenbrand (Arm) <[email protected]> -- Cheers, David
