From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45325) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ujs0d-0004sl-AV for qemu-devel@nongnu.org; Tue, 04 Jun 2013 10:14:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ujs0R-0006FJ-4L for qemu-devel@nongnu.org; Tue, 04 Jun 2013 10:14:47 -0400 Message-ID: <51ADF637.7060804@redhat.com> Date: Tue, 04 Jun 2013 16:14:15 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <51A7036A.3050407@ozlabs.ru> <51A7049F.6040207@redhat.com> <51A70B3D.90609@ozlabs.ru> <51A71705.6060009@kamp.de> <51A74D79.7040204@redhat.com> <2765FDFA-8050-4AA3-8621-7E9EA2C89F9C@kamp.de> <51A764FC.7080705@redhat.com> <51ADF122.70307@kamp.de> In-Reply-To: <51ADF122.70307@kamp.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] broken incoming migration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Lieven Cc: Alexey Kardashevskiy , "qemu-ppc@nongnu.org" , "qemu-devel@nongnu.org" , David Gibson Il 04/06/2013 15:52, Peter Lieven ha scritto: > On 30.05.2013 16:41, Paolo Bonzini wrote: >> Il 30/05/2013 16:38, Peter Lieven ha scritto: >>>>> You could also scan the page for nonzero values before writing it. >>> i had this in mind, but then choosed the other approach.... turned >>> out to be a bad idea. >>> >>> alexey: i will prepare a patch later today, could you then please >>> verify it fixes your problem. >>> >>> paolo: would we still need the madvise or is it enough to not write >>> the zeroes? >> It should be enough to not write them. > > Problem: checking the pages for zero allocates them. even at the source. It doesn't look like. I tried this program and top doesn't show an increasing amount of reserved memory: #include #include int main() { char *x = malloc(500 << 20); int i, j; for (i = 0; i < 500; i += 10) { for (j = 0; j < 10 << 20; j += 4096) { *(volatile char*) (x + (i << 20) + j); } getchar(); } } Paolo