Revert "migration: do not sent zero pages in bulk stage"
Not sending zero pages breaks migration if a page is zero at the source but not at the destination. This can e.g. happen if different BIOS versions are used at source and destination. It has also been reported that migration on pseries is completely broken with this patch. This effectively reverts commitf1c72795af. Conflicts: arch_init.c Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Juan Quintela <quintela@redhat.com> (cherry picked from commit9ef051e553) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
d306fd5f4a
commit
64a72fa71f
13
arch_init.c
13
arch_init.c
|
|
@ -457,15 +457,10 @@ static int ram_save_block(QEMUFile *f, bool last_stage)
|
|||
bytes_sent = -1;
|
||||
if (is_zero_page(p)) {
|
||||
acct_info.dup_pages++;
|
||||
if (!ram_bulk_stage) {
|
||||
bytes_sent = save_block_hdr(f, block, offset, cont,
|
||||
RAM_SAVE_FLAG_COMPRESS);
|
||||
qemu_put_byte(f, 0);
|
||||
bytes_sent++;
|
||||
} else {
|
||||
acct_info.skipped_pages++;
|
||||
bytes_sent = 0;
|
||||
}
|
||||
bytes_sent = save_block_hdr(f, block, offset, cont,
|
||||
RAM_SAVE_FLAG_COMPRESS);
|
||||
qemu_put_byte(f, 0);
|
||||
bytes_sent++;
|
||||
} else if (!ram_bulk_stage && migrate_use_xbzrle()) {
|
||||
current_addr = block->offset + offset;
|
||||
bytes_sent = save_xbzrle_page(f, p, current_addr, block,
|
||||
|
|
|
|||
Loading…
Reference in New Issue