All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] virtio-9p: add savem handlers
@ 2015-10-22 17:38 Greg Kurz
  2015-11-12  8:28 ` Greg Kurz
  0 siblings, 1 reply; 6+ messages in thread
From: Greg Kurz @ 2015-10-22 17:38 UTC (permalink / raw)
  To: qemu-devel; +Cc: aneesh.kumar, Michael S. Tsirkin

We don't support migration of mounted 9p shares. This is handled by a
migration blocker.

One would expect, however, to be able to migrate if the share is unmounted.
Unfortunately virtio-9p-device does not register savevm handlers at all !
Migration succeeds and leaves the guest with a dangling device...

This patch simply registers migration handlers for virtio-9p-device. Whether
migration is possible or not still depends on the migration blocker.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
---
Michael, Aneesh,

This is the same patch minus the call to unregister_savevm() since we don't
have an unrealize handler.

I decided to simply drop all the other patches. Hot-unplug support is totally
missing and definitely needs more work. I'll try to come up with a solution
in its own series.

Cheers.

--
Greg

---
 hw/9pfs/virtio-9p-device.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
index 93a407c45926..e3abcfaffb2a 100644
--- a/hw/9pfs/virtio-9p-device.c
+++ b/hw/9pfs/virtio-9p-device.c
@@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, uint8_t *config)
     g_free(cfg);
 }
 
+static void virtio_9p_save(QEMUFile *f, void *opaque)
+{
+    virtio_save(VIRTIO_DEVICE(opaque), f);
+}
+
+static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id)
+{
+    return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
+}
+
 static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
 {
     VirtIODevice *vdev = VIRTIO_DEVICE(dev);
@@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
     }
     v9fs_path_free(&path);
 
+    register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, virtio_9p_load, s);
     return;
 out:
     g_free(s->ctx.fs_root);

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] virtio-9p: add savem handlers
  2015-10-22 17:38 [Qemu-devel] [PATCH] virtio-9p: add savem handlers Greg Kurz
@ 2015-11-12  8:28 ` Greg Kurz
  2015-11-12 12:50   ` Cornelia Huck
  0 siblings, 1 reply; 6+ messages in thread
From: Greg Kurz @ 2015-11-12  8:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: aneesh.kumar, Michael S. Tsirkin

On Thu, 22 Oct 2015 19:38:42 +0200
Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:

> We don't support migration of mounted 9p shares. This is handled by a
> migration blocker.
> 
> One would expect, however, to be able to migrate if the share is unmounted.
> Unfortunately virtio-9p-device does not register savevm handlers at all !
> Migration succeeds and leaves the guest with a dangling device...
> 
> This patch simply registers migration handlers for virtio-9p-device. Whether
> migration is possible or not still depends on the migration blocker.
> 
> Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
> ---

Ping ?

> Michael, Aneesh,
> 
> This is the same patch minus the call to unregister_savevm() since we don't
> have an unrealize handler.
> 
> I decided to simply drop all the other patches. Hot-unplug support is totally
> missing and definitely needs more work. I'll try to come up with a solution
> in its own series.
> 
> Cheers.
> 
> --
> Greg
> 
> ---
>  hw/9pfs/virtio-9p-device.c |   11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
> index 93a407c45926..e3abcfaffb2a 100644
> --- a/hw/9pfs/virtio-9p-device.c
> +++ b/hw/9pfs/virtio-9p-device.c
> @@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, uint8_t *config)
>      g_free(cfg);
>  }
> 
> +static void virtio_9p_save(QEMUFile *f, void *opaque)
> +{
> +    virtio_save(VIRTIO_DEVICE(opaque), f);
> +}
> +
> +static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id)
> +{
> +    return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
> +}
> +
>  static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
>  {
>      VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> @@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
>      }
>      v9fs_path_free(&path);
> 
> +    register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, virtio_9p_load, s);
>      return;
>  out:
>      g_free(s->ctx.fs_root);
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] virtio-9p: add savem handlers
  2015-11-12  8:28 ` Greg Kurz
@ 2015-11-12 12:50   ` Cornelia Huck
  2015-11-12 14:25     ` Greg Kurz
  0 siblings, 1 reply; 6+ messages in thread
From: Cornelia Huck @ 2015-11-12 12:50 UTC (permalink / raw)
  To: Greg Kurz; +Cc: Michael S. Tsirkin, qemu-devel, aneesh.kumar

On Thu, 12 Nov 2015 09:28:21 +0100
Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:

> On Thu, 22 Oct 2015 19:38:42 +0200
> Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> 
> > We don't support migration of mounted 9p shares. This is handled by a
> > migration blocker.
> > 
> > One would expect, however, to be able to migrate if the share is unmounted.
> > Unfortunately virtio-9p-device does not register savevm handlers at all !
> > Migration succeeds and leaves the guest with a dangling device...
> > 
> > This patch simply registers migration handlers for virtio-9p-device. Whether
> > migration is possible or not still depends on the migration blocker.
> > 
> > Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
> > ---
> 
> Ping ?
> 
> > Michael, Aneesh,
> > 
> > This is the same patch minus the call to unregister_savevm() since we don't
> > have an unrealize handler.
> > 
> > I decided to simply drop all the other patches. Hot-unplug support is totally
> > missing and definitely needs more work. I'll try to come up with a solution
> > in its own series.
> > 
> > Cheers.
> > 
> > --
> > Greg
> > 
> > ---
> >  hw/9pfs/virtio-9p-device.c |   11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
> > index 93a407c45926..e3abcfaffb2a 100644
> > --- a/hw/9pfs/virtio-9p-device.c
> > +++ b/hw/9pfs/virtio-9p-device.c
> > @@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, uint8_t *config)
> >      g_free(cfg);
> >  }
> > 
> > +static void virtio_9p_save(QEMUFile *f, void *opaque)
> > +{
> > +    virtio_save(VIRTIO_DEVICE(opaque), f);
> > +}
> > +
> > +static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id)
> > +{
> > +    return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
> > +}
> > +
> >  static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> >  {
> >      VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> > @@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> >      }
> >      v9fs_path_free(&path);
> > 
> > +    register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, virtio_9p_load, s);
> >      return;
> >  out:
> >      g_free(s->ctx.fs_root);

Probably dumb question: Is there no state in the V9fsState, or is it
simply irrelevant if there are no mounts?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] virtio-9p: add savem handlers
  2015-11-12 12:50   ` Cornelia Huck
@ 2015-11-12 14:25     ` Greg Kurz
  2015-11-12 14:39       ` Cornelia Huck
  0 siblings, 1 reply; 6+ messages in thread
From: Greg Kurz @ 2015-11-12 14:25 UTC (permalink / raw)
  To: Cornelia Huck; +Cc: Michael S. Tsirkin, qemu-devel, aneesh.kumar

On Thu, 12 Nov 2015 13:50:20 +0100
Cornelia Huck <cornelia.huck@de.ibm.com> wrote:

> On Thu, 12 Nov 2015 09:28:21 +0100
> Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> 
> > On Thu, 22 Oct 2015 19:38:42 +0200
> > Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> > 
> > > We don't support migration of mounted 9p shares. This is handled by a
> > > migration blocker.
> > > 
> > > One would expect, however, to be able to migrate if the share is unmounted.
> > > Unfortunately virtio-9p-device does not register savevm handlers at all !
> > > Migration succeeds and leaves the guest with a dangling device...
> > > 
> > > This patch simply registers migration handlers for virtio-9p-device. Whether
> > > migration is possible or not still depends on the migration blocker.
> > > 
> > > Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
> > > ---
> > 
> > Ping ?
> > 
> > > Michael, Aneesh,
> > > 
> > > This is the same patch minus the call to unregister_savevm() since we don't
> > > have an unrealize handler.
> > > 
> > > I decided to simply drop all the other patches. Hot-unplug support is totally
> > > missing and definitely needs more work. I'll try to come up with a solution
> > > in its own series.
> > > 
> > > Cheers.
> > > 
> > > --
> > > Greg
> > > 
> > > ---
> > >  hw/9pfs/virtio-9p-device.c |   11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > > 
> > > diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
> > > index 93a407c45926..e3abcfaffb2a 100644
> > > --- a/hw/9pfs/virtio-9p-device.c
> > > +++ b/hw/9pfs/virtio-9p-device.c
> > > @@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, uint8_t *config)
> > >      g_free(cfg);
> > >  }
> > > 
> > > +static void virtio_9p_save(QEMUFile *f, void *opaque)
> > > +{
> > > +    virtio_save(VIRTIO_DEVICE(opaque), f);
> > > +}
> > > +
> > > +static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id)
> > > +{
> > > +    return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
> > > +}
> > > +
> > >  static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> > >  {
> > >      VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> > > @@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> > >      }
> > >      v9fs_path_free(&path);
> > > 
> > > +    register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, virtio_9p_load, s);
> > >      return;
> > >  out:
> > >      g_free(s->ctx.fs_root);
> 
> Probably dumb question: Is there no state in the V9fsState, or is it
> simply irrelevant if there are no mounts?

My understanding is that V9fsState has state but it is not used when
there are no mounts... maybe worth mentioning in a comment or in the
changelog ?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] virtio-9p: add savem handlers
  2015-11-12 14:25     ` Greg Kurz
@ 2015-11-12 14:39       ` Cornelia Huck
  2015-11-12 16:06         ` Greg Kurz
  0 siblings, 1 reply; 6+ messages in thread
From: Cornelia Huck @ 2015-11-12 14:39 UTC (permalink / raw)
  To: Greg Kurz; +Cc: Michael S. Tsirkin, qemu-devel, aneesh.kumar

On Thu, 12 Nov 2015 15:25:33 +0100
Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:

> On Thu, 12 Nov 2015 13:50:20 +0100
> Cornelia Huck <cornelia.huck@de.ibm.com> wrote:
> 
> > On Thu, 12 Nov 2015 09:28:21 +0100
> > Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> > 
> > > On Thu, 22 Oct 2015 19:38:42 +0200
> > > Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> > > 
> > > > We don't support migration of mounted 9p shares. This is handled by a
> > > > migration blocker.
> > > > 
> > > > One would expect, however, to be able to migrate if the share is unmounted.
> > > > Unfortunately virtio-9p-device does not register savevm handlers at all !
> > > > Migration succeeds and leaves the guest with a dangling device...
> > > > 
> > > > This patch simply registers migration handlers for virtio-9p-device. Whether
> > > > migration is possible or not still depends on the migration blocker.
> > > > 
> > > > Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
> > > > ---
> > > 
> > > Ping ?
> > > 
> > > > Michael, Aneesh,
> > > > 
> > > > This is the same patch minus the call to unregister_savevm() since we don't
> > > > have an unrealize handler.
> > > > 
> > > > I decided to simply drop all the other patches. Hot-unplug support is totally
> > > > missing and definitely needs more work. I'll try to come up with a solution
> > > > in its own series.
> > > > 
> > > > Cheers.
> > > > 
> > > > --
> > > > Greg
> > > > 
> > > > ---
> > > >  hw/9pfs/virtio-9p-device.c |   11 +++++++++++
> > > >  1 file changed, 11 insertions(+)
> > > > 
> > > > diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
> > > > index 93a407c45926..e3abcfaffb2a 100644
> > > > --- a/hw/9pfs/virtio-9p-device.c
> > > > +++ b/hw/9pfs/virtio-9p-device.c
> > > > @@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, uint8_t *config)
> > > >      g_free(cfg);
> > > >  }
> > > > 
> > > > +static void virtio_9p_save(QEMUFile *f, void *opaque)
> > > > +{
> > > > +    virtio_save(VIRTIO_DEVICE(opaque), f);
> > > > +}
> > > > +
> > > > +static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id)
> > > > +{
> > > > +    return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
> > > > +}
> > > > +
> > > >  static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> > > >  {
> > > >      VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> > > > @@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> > > >      }
> > > >      v9fs_path_free(&path);
> > > > 
> > > > +    register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, virtio_9p_load, s);
> > > >      return;
> > > >  out:
> > > >      g_free(s->ctx.fs_root);
> > 
> > Probably dumb question: Is there no state in the V9fsState, or is it
> > simply irrelevant if there are no mounts?
> 
> My understanding is that V9fsState has state but it is not used when
> there are no mounts... maybe worth mentioning in a comment or in the
> changelog ?

If V9fsState will look sensible after migration if there are no mounts,
I think it's worth adding a comment in the code.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] virtio-9p: add savem handlers
  2015-11-12 14:39       ` Cornelia Huck
@ 2015-11-12 16:06         ` Greg Kurz
  0 siblings, 0 replies; 6+ messages in thread
From: Greg Kurz @ 2015-11-12 16:06 UTC (permalink / raw)
  To: Cornelia Huck; +Cc: Michael S. Tsirkin, qemu-devel, aneesh.kumar

On Thu, 12 Nov 2015 15:39:02 +0100
Cornelia Huck <cornelia.huck@de.ibm.com> wrote:

> On Thu, 12 Nov 2015 15:25:33 +0100
> Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> 
> > On Thu, 12 Nov 2015 13:50:20 +0100
> > Cornelia Huck <cornelia.huck@de.ibm.com> wrote:
> > 
> > > On Thu, 12 Nov 2015 09:28:21 +0100
> > > Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> > > 
> > > > On Thu, 22 Oct 2015 19:38:42 +0200
> > > > Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:
> > > > 
> > > > > We don't support migration of mounted 9p shares. This is handled by a
> > > > > migration blocker.
> > > > > 
> > > > > One would expect, however, to be able to migrate if the share is unmounted.
> > > > > Unfortunately virtio-9p-device does not register savevm handlers at all !
> > > > > Migration succeeds and leaves the guest with a dangling device...
> > > > > 
> > > > > This patch simply registers migration handlers for virtio-9p-device. Whether
> > > > > migration is possible or not still depends on the migration blocker.
> > > > > 
> > > > > Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
> > > > > ---
> > > > 
> > > > Ping ?
> > > > 
> > > > > Michael, Aneesh,
> > > > > 
> > > > > This is the same patch minus the call to unregister_savevm() since we don't
> > > > > have an unrealize handler.
> > > > > 
> > > > > I decided to simply drop all the other patches. Hot-unplug support is totally
> > > > > missing and definitely needs more work. I'll try to come up with a solution
> > > > > in its own series.
> > > > > 
> > > > > Cheers.
> > > > > 
> > > > > --
> > > > > Greg
> > > > > 
> > > > > ---
> > > > >  hw/9pfs/virtio-9p-device.c |   11 +++++++++++
> > > > >  1 file changed, 11 insertions(+)
> > > > > 
> > > > > diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
> > > > > index 93a407c45926..e3abcfaffb2a 100644
> > > > > --- a/hw/9pfs/virtio-9p-device.c
> > > > > +++ b/hw/9pfs/virtio-9p-device.c
> > > > > @@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, uint8_t *config)
> > > > >      g_free(cfg);
> > > > >  }
> > > > > 
> > > > > +static void virtio_9p_save(QEMUFile *f, void *opaque)
> > > > > +{
> > > > > +    virtio_save(VIRTIO_DEVICE(opaque), f);
> > > > > +}
> > > > > +
> > > > > +static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id)
> > > > > +{
> > > > > +    return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
> > > > > +}
> > > > > +
> > > > >  static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> > > > >  {
> > > > >      VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> > > > > @@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, Error **errp)
> > > > >      }
> > > > >      v9fs_path_free(&path);
> > > > > 
> > > > > +    register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, virtio_9p_load, s);
> > > > >      return;
> > > > >  out:
> > > > >      g_free(s->ctx.fs_root);
> > > 
> > > Probably dumb question: Is there no state in the V9fsState, or is it
> > > simply irrelevant if there are no mounts?
> > 
> > My understanding is that V9fsState has state but it is not used when
> > there are no mounts... maybe worth mentioning in a comment or in the
> > changelog ?
> 
> If V9fsState will look sensible after migration if there are no mounts,
> I think it's worth adding a comment in the code.

Heh Michael just sent a pull request with the current version of the patch :)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-11-12 16:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-22 17:38 [Qemu-devel] [PATCH] virtio-9p: add savem handlers Greg Kurz
2015-11-12  8:28 ` Greg Kurz
2015-11-12 12:50   ` Cornelia Huck
2015-11-12 14:25     ` Greg Kurz
2015-11-12 14:39       ` Cornelia Huck
2015-11-12 16:06         ` Greg Kurz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.