"Marco Cavenati" <marco.caven...@eurecom.fr> writes: > On Thursday, April 10, 2025 21:52 CEST, Fabiano Rosas <faro...@suse.de> wrote: > >> We'll need to add the infrastructure to reject multifd and direct-io >> before this. The rest of the capabilities should not affect mapped-ram, >> so it's fine (for now) if we don't honor them. > > Ok, thanks for the update. > >> What about zero page handling? Mapped-ram doesn't send zero pages >> because the file will always have zeroes in it and the migration >> destination is guaranteed to not have been running previously. I believe >> loading a snapshot in a VM that's already been running would leave stale >> data in the guest's memory. > > Yes, you are correct. > > About the `RAMBlock->file_bmap`, according to the code it is a: > `/* bitmap of pages present in the migration file */` > And, if a pages is a zero page, it won't be in the migration file: > `/* zero pages are not transferred with mapped-ram */` > So, zero page implies bitmap 0. > Does the opposite hold? >
It does. Mapped-ram takes up (sparse) disk space equal to the guest's ram size. > If bitmap 0 implies zero page, we could call `ram_handle_zero` > in `read_ramblock_mapped_ram` for the clear bits. > Or do you fear this might be unnecessary expensive for migration? > Yes, unfortunately the peformance difference is noticeable. But we could have a slightly different algorithm for savevm. At this point it might be easier to just duplicate read_ramblock_mapped_ram(), check for savevm in there and see what that the resulting code looks like. By the way, what's your overall goal with enabling the feature? Do you intent to enable further capabilities for snapshot? Specifically multifd. I belive the zero page skip is responsible for most of the performance gains for mapped-ram without direct-io and multifd. The benefit of bounded stream size doesn't apply to snapshots because they're not live. It would be interesting to gather some numbers for the perf difference between mapped-ram=on vs off. > If bitmap 0 does not imply zero page, I feel like the > "is present in the migration file" and "is zero page" info should > be better separated. > > Best, > Marco