From patchwork Mon Jun 10 10:14:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Lieven X-Patchwork-Id: 250206 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 07AC72C030F for ; Mon, 10 Jun 2013 20:16:40 +1000 (EST) Received: from localhost ([::1]:35063 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ulz9S-0006fu-0d for incoming@patchwork.ozlabs.org; Mon, 10 Jun 2013 06:16:38 -0400 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 Received: (qmail 22102 invoked by uid 89); 10 Jun 2013 10:15:52 -0000 Received: from [82.141.1.145] by client-16-kamp (envelope-from , uid 89) with qmail-scanner-2.01 (clamdscan: 0.97.8/17328. hbedv: 8.2.12.30/7.11.74.24. spamassassin: 3.3.1. Clear:RC:1(82.141.1.145):SA:0(-1.6/5.0):. Processed in 0.557477 secs); 10 Jun 2013 10:15:52 -0000 Received: from ns.kamp-intra.net (HELO dns.kamp-intra.net) ([82.141.1.145]) by mx01.kamp.de with SMTP; 10 Jun 2013 10:15:51 -0000 X-GL_Whitelist: yes Received: from lieven-pc.kamp-intra.net (lieven-pc.kamp-intra.net [172.21.12.60]) by dns.kamp-intra.net (Postfix) with ESMTP id 6BA1220695; Mon, 10 Jun 2013 12:14:31 +0200 (CEST) Received: by lieven-pc.kamp-intra.net (Postfix, from userid 1000) id 9FFA961294; Mon, 10 Jun 2013 12:14:31 +0200 (CEST) From: Peter Lieven To: qemu-devel@nongnu.org Date: Mon, 10 Jun 2013 12:14:19 +0200 Message-Id: <1370859260-8183-2-git-send-email-pl@kamp.de> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1370859260-8183-1-git-send-email-pl@kamp.de> References: <1370859260-8183-1-git-send-email-pl@kamp.de> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a02:248:0:51::16 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 Subject: [Qemu-devel] [PATCHv2 1/2] Revert "migration: do not sent zero pages in bulk stage" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 Reviewed-by: Michael Roth Reviewed-by: Orit Wasserman Reviewed-by: Wenchao Xia --- 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,