From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43016) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ulz8v-0006df-6l for qemu-devel@nongnu.org; Mon, 10 Jun 2013 06:16:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ulz8k-0001hZ-4e for qemu-devel@nongnu.org; Mon, 10 Jun 2013 06:16:05 -0400 Received: from mx.ipv6.kamp.de ([2a02:248:0:51::16]:42765 helo=mx01.kamp.de) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1Ulz8j-0001h5-Rj for qemu-devel@nongnu.org; Mon, 10 Jun 2013 06:15:54 -0400 From: Peter Lieven Date: Mon, 10 Jun 2013 12:14:19 +0200 Message-Id: <1370859260-8183-2-git-send-email-pl@kamp.de> In-Reply-To: <1370859260-8183-1-git-send-email-pl@kamp.de> References: <1370859260-8183-1-git-send-email-pl@kamp.de> Subject: [Qemu-devel] [PATCHv2 1/2] Revert "migration: do not sent zero pages in bulk stage" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: quintela@redhat.com, aik@ozlabs.ru, Peter Lieven , owasserm@redhat.com, pbonzini@redhat.com, xiawenc@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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 --- arch_init.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/arch_init.c b/arch_init.c index 5d32ecf..08fccf6 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, -- 1.7.9.5