summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Lieven <pl@kamp.de>2013-06-10 12:14:19 +0200
committerMichael Roth <mdroth@linux.vnet.ibm.com>2013-08-12 17:15:51 -0500
commit64a72fa71fd2b9720c8b70726521c39bdd2c0ea9 (patch)
treec4716241df54999becb977ec2b5577d6e424605d
parentd306fd5f4ad5f0f168271a77d114931db7a337ea (diff)
downloadqemu-64a72fa71fd2b9720c8b70726521c39bdd2c0ea9.tar.gz
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 f1c72795af573b24a7da5eb52375c9aba8a37972. Conflicts: arch_init.c Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Juan Quintela <quintela@redhat.com> (cherry picked from commit 9ef051e5536b6368a1076046ec6c4ec4ac12b5c6) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--arch_init.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/arch_init.c b/arch_init.c
index 522caeb61c..6afc57e04c 100644
--- a/arch_init.c
+++ b/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,