From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42413) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpuaZ-0006CC-Ly for qemu-devel@nongnu.org; Fri, 30 Sep 2016 05:58:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpuaU-00080N-N0 for qemu-devel@nongnu.org; Fri, 30 Sep 2016 05:58:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52624) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpuaU-00080G-Gg for qemu-devel@nongnu.org; Fri, 30 Sep 2016 05:58:38 -0400 Date: Fri, 30 Sep 2016 10:58:34 +0100 From: "Dr. David Alan Gilbert" Message-ID: <20160930095833.GB2095@work-vm> References: <1475147192-31228-1-git-send-email-lizhijian@cn.fujitsu.com> <1475147192-31228-2-git-send-email-lizhijian@cn.fujitsu.com> <20160930061516.GC1429@amit-lp.rh> <6327b0c2-6017-f80c-ed48-db7e9917ad25@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6327b0c2-6017-f80c-ed48-db7e9917ad25@cn.fujitsu.com> Subject: Re: [Qemu-devel] [PATCH 2/2] migration: send and check the devices between source and distination at the begining List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Li Zhijian Cc: Amit Shah , qemu-devel@nongnu.org, quintela@redhat.com * Li Zhijian (lizhijian@cn.fujitsu.com) wrote: > > > On 09/30/2016 02:15 PM, Amit Shah wrote: > > Hi, > > > > On (Thu) 29 Sep 2016 [19:06:32], Li Zhijian wrote: > > > Priviously, if the source and distination have different devices, source could goto > > > the status "paused (postmigrate)", and the distination will exit that means no qemu > > > is alive. > > > > > > After this patch, at above case, source can dectect the some error early from distination > > > and stop the migration, source keep in status "running". > > > > How would incoming migrations from previous versions work? > > You are right. we need to consider more. > > How about that: > we need to introduce a new section type(e.g: QEMU_VM_SECTION_DEVICE_LIST). > > source side: > - at the beginning of qemu_savevm_state_begin(), send QEMU_VM_SECTION_DEVICE_LIST first > - original path > > dst side: > - if we got the QEMU_VM_SECTION_DEVICE_LIST, have a check with the devices(name,version) > - otherwise original path Yes, and only send it on new machine types. I think a list could be a good idea; I don't worry too much about the 'paused (postmigrate)' case, because libvirt can spot that the destination failed and then restart the source, however a list would also fix the opposite case; where the destination has an extra device that the source does not have, in most cases I think that doesn't cause a failure at the moment but the device has an unusual state. A QEMU_VM_SECTION_DEVICE_LIST would work, but perhaps a subsection of vmstate_globalstate would work? Dave > > Please correct me. > > Thanks > Zhijian > > > > > > > Amit > > > > > > > > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK