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 commit f1c72795af
.
Conflicts:
arch_init.c
Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
87d2f82543
commit
9ef051e553
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;
|
bytes_sent = -1;
|
||||||
if (is_zero_page(p)) {
|
if (is_zero_page(p)) {
|
||||||
acct_info.dup_pages++;
|
acct_info.dup_pages++;
|
||||||
if (!ram_bulk_stage) {
|
bytes_sent = save_block_hdr(f, block, offset, cont,
|
||||||
bytes_sent = save_block_hdr(f, block, offset, cont,
|
RAM_SAVE_FLAG_COMPRESS);
|
||||||
RAM_SAVE_FLAG_COMPRESS);
|
qemu_put_byte(f, 0);
|
||||||
qemu_put_byte(f, 0);
|
bytes_sent++;
|
||||||
bytes_sent++;
|
|
||||||
} else {
|
|
||||||
acct_info.skipped_pages++;
|
|
||||||
bytes_sent = 0;
|
|
||||||
}
|
|
||||||
} else if (!ram_bulk_stage && migrate_use_xbzrle()) {
|
} else if (!ram_bulk_stage && migrate_use_xbzrle()) {
|
||||||
current_addr = block->offset + offset;
|
current_addr = block->offset + offset;
|
||||||
bytes_sent = save_xbzrle_page(f, p, current_addr, block,
|
bytes_sent = save_xbzrle_page(f, p, current_addr, block,
|
||||||
|
|
Loading…
Reference in a new issue