From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57278) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhxcA-0003Q1-Fx for qemu-devel@nongnu.org; Thu, 30 May 2013 03:49:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uhxc5-0007Oy-Ln for qemu-devel@nongnu.org; Thu, 30 May 2013 03:49:38 -0400 Received: from mail-pd0-f180.google.com ([209.85.192.180]:63352) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uhxc5-0007On-F8 for qemu-devel@nongnu.org; Thu, 30 May 2013 03:49:33 -0400 Received: by mail-pd0-f180.google.com with SMTP id 14so7799182pdc.11 for ; Thu, 30 May 2013 00:49:32 -0700 (PDT) Message-ID: <51A70487.8090602@ozlabs.ru> Date: Thu, 30 May 2013 17:49:27 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <51A7036A.3050407@ozlabs.ru> In-Reply-To: <51A7036A.3050407@ozlabs.ru> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [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" , Paul Mackerras , David Gibson Forgot some cc:. On 05/30/2013 05:44 PM, Alexey Kardashevskiy wrote: > 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