History | View | Annotate | Download (15.7 kB)
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....