From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56436) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhxXb-0000Uy-K2 for qemu-devel@nongnu.org; Thu, 30 May 2013 03:45:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UhxXX-0005tj-2l for qemu-devel@nongnu.org; Thu, 30 May 2013 03:44:55 -0400 Received: from mail-pb0-x22e.google.com ([2607:f8b0:400e:c01::22e]:38637) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhxXW-0005tW-SB for qemu-devel@nongnu.org; Thu, 30 May 2013 03:44:50 -0400 Received: by mail-pb0-f46.google.com with SMTP id rq2so10622030pbb.19 for ; Thu, 30 May 2013 00:44:50 -0700 (PDT) Message-ID: <51A7036A.3050407@ozlabs.ru> Date: Thu, 30 May 2013 17:44:42 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] broken incoming migration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "qemu-devel@nongnu.org" Cc: "qemu-ppc@nongnu.org" , David Gibson Hi! I found the migration broken on pseries platform, specifically, this patch broke it: f1c72795af573b24a7da5eb52375c9aba8a37972 migration: do not sent zero pages in bulk stage The idea is not to send zero pages to the destination guest which is expected to have 100% empty RAM. However on pseries plaftorm the guest always has some stuff in the RAM as a part of initialization (device tree, system firmware and rtas (?)) so it is not completely empty. As the source guest cannot detect this, it skips some pages during migration and we get a broken destination guest. Bug. While the idea is ok in general, I do not see any easy way to fix it as neither QEMUMachine::init nor QEMUMachine::reset callbacks has information about whether we are about to receive a migration or not (-incoming parameter) and we cannot move device-tree and system firmware initialization anywhere else. ram_bulk_stage is static and cannot be disabled from the platform initialization code. So what would the community suggest? Thanks! -- Alexey