History | View | Annotate | Download (15.7 kB)
savevm: Reset last block info at beginning of each save
If we save more than once we need to reset the last block info or elseonly the first save has the actual block info and each subsequent savewill only use continue flags, making them unloadable independently....
ramblocks: No more being lazy about duplicate names
Now that we have a working qemu_ram_free() and the primary runtimeuser of it has been updated, don't be lenient about duplicate id strings.We also shouldn't need to create them ondemand at the target....
savevm: Migrate RAM based on name/offset
Synchronize RAM blocks with the target and migrate using name/offsetpairs. This ensures both source and target have the same view ofRAM and that we get the right bits into the right slot.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>...
savevm: Use RAM blocks for basis of migration
We don't want to assume a contiguous address space, so migrate basedon RAM blocks instead of a fixed linear address map. This will allowus to have holes in the ram_addr_t namespace, so we can implementqemu_ram_free()....
savevm: Create a new continue flag to avoid resending block name
Allows us to compress the protocol a bit by setting a flag on theoffset which indicates we're still working within the same blockas last time. That way we can avoid sending the block name for...
Remove uses of ram.last_offset (aka last_ram_offset)
We currently need this either to allocate the next ram_addr_t for anew block, or for total memory to be migrated. Both of which we cancalculate without need of this to keep us in a contiguous address space....
ram_blocks: Convert to a QLIST
This makes the RAM block list easier to manipulate. Also incorporaterelevant variables into the RAMList struct.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>Acked-by: Chris Wright <chrisw@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
migration: Fix calculation of bytes_transferred
When a page with all identical bytes is transferred, it is countedas a full page (TARGET_PAGE_SIZE) although only one byte is actuallysent. Fix this by changing ram_save_block() to return the number ofbytes sent instead of a boolean value. This makes bandwidth...
Add missing #include needed for madvise() on OpenBSD
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Refactor target specific handling, compile vl.c only once
Move target specific functions and RAM handling to arch_init.c.
Add a flag to QEMUOptions structure to indicate for whicharchitectures the option is allowed, check the flagin run time and remove conditional code in option handling....