From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41139) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwqcX-00055s-13 for qemu-devel@nongnu.org; Thu, 12 Nov 2015 07:04:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZwqcT-0004h9-0K for qemu-devel@nongnu.org; Thu, 12 Nov 2015 07:04:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55874) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwqcS-0004h2-Qq for qemu-devel@nongnu.org; Thu, 12 Nov 2015 07:04:48 -0500 Date: Thu, 12 Nov 2015 12:04:44 +0000 From: "Dr. David Alan Gilbert" Message-ID: <20151112120443.GE2754@work-vm> References: <1447165546-27784-1-git-send-email-quintela@redhat.com> <1447165546-27784-43-git-send-email-quintela@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PULL 42/57] Page request: Consume pages off the post-copy queue List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Amit Shah , QEMU Developers , Juan Quintela * Peter Maydell (peter.maydell@linaro.org) wrote: > On 10 November 2015 at 14:25, Juan Quintela wrote: > > From: "Dr. David Alan Gilbert" > > > > When transmitting RAM pages, consume pages that have been queued by > > MIG_RPCOMM_REQPAGE commands and send them ahead of normal page scanning. > > > > Note: > > a) After a queued page the linear walk carries on from after the > > unqueued page; there is a reasonable chance that the destination > > was about to ask for other closeby pages anyway. > > > > b) We have to be careful of any assumptions that the page walking > > code makes, in particular it does some short cuts on its first linear > > walk that break as soon as we do a queued page. > > > > c) We have to be careful to not break up host-page size chunks, since > > this makes it harder to place the pages on the destination. > > > > Signed-off-by: Dr. David Alan Gilbert > > Reviewed-by: Juan Quintela > > Signed-off-by: Juan Quintela > > I've just discovered that this is causing 'make check' failures on > my OSX host (unfortunately something in my setup is causing > 'make check' failures to not always cause a build failure, so I > didn't notice earlier): It's only failing on OSX? Every time or only sometimes? > manooth$ (make -C build/x86 -j8 && cd build/x86 && > QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 > QTEST_QEMU_IMG=qemu-img MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % > 255 + 1))} tests/ahci-test) > [...] > > /x86_64/ahci/flush/simple: OK > /x86_64/ahci/flush/retry: OK > /x86_64/ahci/flush/migrate: qemu: qemu_mutex_lock: Invalid argument > qemu-system-x86_64:Broken pipe > Not a migration stream > qemu-system-x86_64: load of migration failed: Invalid argument OK, let me see if I can find - I do add a mutex in there (src_page_req_mutex) that I guess is the most likely culprit; it's initialised by migrate_get_current (once using a bool) so it should be OK. If you can find a way to get a backtrace off that qemu_mutex_lock case that would be great; I'd assume the later errors are the fall out from that. Dave > > thanks > -- PMM -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK