From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZxtZ-0005Jg-FI for qemu-devel@nongnu.org; Thu, 10 Sep 2015 05:11:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZxtV-0001NY-9s for qemu-devel@nongnu.org; Thu, 10 Sep 2015 05:11:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40631) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZxtV-0001NT-5g for qemu-devel@nongnu.org; Thu, 10 Sep 2015 05:11:49 -0400 Date: Thu, 10 Sep 2015 12:11:46 +0300 From: "Michael S. Tsirkin" Message-ID: <20150910121106-mutt-send-email-mst@redhat.com> References: <1441164325-14417-1-git-send-email-jasowang@redhat.com> <1441164325-14417-5-git-send-email-jasowang@redhat.com> <20150902130630.662ae71b.cornelia.huck@de.ibm.com> <55ED3F4F.4060504@redhat.com> <20150907102111.7c2ec0dd.cornelia.huck@de.ibm.com> <55EE8DFF.2010206@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55EE8DFF.2010206@redhat.com> Subject: Re: [Qemu-devel] [PATCH V2 4/8] virtio-pci: fix 1.0 virtqueue migration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jason Wang Cc: Cornelia Huck , qemu-devel@nongnu.org On Tue, Sep 08, 2015 at 03:27:59PM +0800, Jason Wang wrote: > > > On 09/07/2015 04:21 PM, Cornelia Huck wrote: > > On Mon, 7 Sep 2015 15:39:59 +0800 > > Jason Wang wrote: > > > >> > On 09/02/2015 07:06 PM, Cornelia Huck wrote: > >>> > > On Wed, 2 Sep 2015 11:25:21 +0800 > >>> > > Jason Wang wrote: > >>>> > >> +static int get_extra_state(QEMUFile *f, void *pv, size_t size) > >>>> > >> +{ > >>>> > >> + VirtIODevice *vdev = pv; > >>>> > >> + BusState *qbus = qdev_get_parent_bus(DEVICE(vdev)); > >>>> > >> + VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus); > >>>> > >> + int ret = 0; > >>>> > >> + > >>>> > >> + ret = k->load_extra_state(qbus->parent, f); > >>> > > Should we check for ->load_extra_state() and return failure if it does > >>> > > not exist? > >> > > >> > I think checking the existence of has_extra_state() in > >> > virtio_extra_state_needed() is enough for this? Or is there anything I miss? > > The has_extra_state() callback is called by the sender, not by the > > receiver. > > > > If the other side sent the extra state but we can't handle it, I think > > it would be better to fail the migration than to crash. Still broken > > code, but probably easier to debug :) > > > > I see so it only happen when transport provides save_extra_state() but > not get_extra_sate(). I'm ok to add the check in next version . > > Thanks This seems minor enough. I think I'll merge this as is, we can tweak things using patches on top.