From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42610) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YheNw-0007El-Cw for qemu-devel@nongnu.org; Mon, 13 Apr 2015 09:26:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YheNq-0002jn-OV for qemu-devel@nongnu.org; Mon, 13 Apr 2015 09:26:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YheNq-0002j5-HU for qemu-devel@nongnu.org; Mon, 13 Apr 2015 09:26:38 -0400 Message-ID: <552BC3FC.3020505@redhat.com> Date: Mon, 13 Apr 2015 15:26:20 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1424883128-9841-1-git-send-email-dgilbert@redhat.com> <1424883128-9841-31-git-send-email-dgilbert@redhat.com> <20150323042012.GN25043@voom.fritz.box> <20150326110517.GA2370@work-vm> <551909CA.7080605@redhat.com> <20150413113506.GB2275@work-vm> In-Reply-To: <20150413113506.GB2275@work-vm> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 30/45] Postcopy: Postcopy startup in migration thread List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" Cc: aarcange@redhat.com, yamahata@private.email.ne.jp, quintela@redhat.com, qemu-devel@nongnu.org, amit.shah@redhat.com, yanghy@cn.fujitsu.com, David Gibson On 13/04/2015 13:35, Dr. David Alan Gilbert wrote: >>>>>>> + qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER); >>>>>>> > >>> > > + *old_vm_running = runstate_is_running(); >>>>> > >> > >>>>> > >> > I think that needs some explanation. Why are you doing a wakeup on >>>>> > >> > the source host? >>> > > This matches the existing code in migration_thread for the end of precopy; >>> > > Paolo's explanation of what it does is here: >>> > > https://lists.gnu.org/archive/html/qemu-devel/2014-08/msg04880.html >> > >> > The more I look at it, the more I'm convinced it's working by chance or >> > not working at all. > Do you mean in general or in the postcopy case? In general. > > Here we probably need to do only the notifier_list_notify + > > qapi_event_send_wakeup. > > Do you mean a : > wakeup_reason = QEMU_WAKEUP_REASON_OTHER; > notifier_list_notify(&wakeup_notifiers, &wakeup_reason); > wakeup_reason = QEMU_WAKEUP_REASON_NONE; > qapi_event_send_wakeup(&error); > > which I guess would need wrapping up in vl.c Yes. > (It's not really clear to me what this stuff does even with > your previous explanation; if it's to do with migrating > something suspended-to-ram I guess a postcopy is possible > but it doesn't seem that sensible to use postcopy for a > machine with a CPU that isn't running). Yes, but management does not know in advance that the machine will suspend to RAM. It's basically a race. Paolo