On 22.02.21 18:29, Peter Xu wrote:
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.

They are randomly scattered across the whole RAMBlock. Shrinking/growing will be done to some degree in the future (but it won't get rid of the general sparse layout we can produce).

--
Thanks,

David / dhildenb


Reply via email to