On Sat, Feb 20, 2021 at 02:59:42AM -0500, David Hildenbrand wrote: > Live snapshotting ends up reading all guest memory (dirty bitmap starts with > all 1s), which is not what we want for virtio-mem - we don’t want to read and > migrate memory that has been discarded and has no stable content. > > For ordinary migration we use the guest page hint API to clear bits in the > dirty bitmap after dirty bitmap sync. Well, if we don‘t do bitmap syncs we‘ll > never clear any dirty bits. That‘s the problem.
Using dirty bitmap for that information is less efficient, becase it's definitely a larger granularity information than PAGE_SIZE. If the disgarded ranges are always continuous and at the end of a memory region, we should have some parameter in the ramblock showing that where we got shrinked then we don't check dirty bitmap at all, rather than always assuming used_length is the one. Thanks, -- Peter Xu