[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/15] virtio-9p: migrate virtio subsections
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 09/15] virtio-9p: migrate virtio subsections |
Date: |
Fri, 2 Oct 2015 16:45:36 +0300 |
From: Greg Kurz <address@hidden>
In a cross-endian setup, the virtio-9p device has state in @device_endian. It
must be migrated. This patch just adds the minimal support to live migrate
generic virtio subsections where @device_endian is handled.
Please note that this is unrelated to the fact that we block migration when
the 9p share is mounted in the guest. It fixes the case where we want to
migrate an unactive 9p device (not mounted in the guest) to a QEMU with
different endianness: the migration currently succeeds but leaves the device
in an inconsistent state that causes mount to hang until we reboot the guest.
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
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 93a407c..e3abcfa 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);
--
MST
- [Qemu-devel] [PULL 06/15] exec: allocate PROT_NONE pages on top of RAM, (continued)
- [Qemu-devel] [PULL 06/15] exec: allocate PROT_NONE pages on top of RAM, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 08/15] virtio: Notice when the system doesn't support MSIx at all, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 11/15] vhost-user: unit test for new messages, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 12/15] memhp: extend address auto assignment to support gaps, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 07/15] pc: Add a comment explaining why pc_compat_2_4() doesn't exist, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 03/15] virtio-net: correctly drop truncated packets, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 05/15] oslib: allocate PROT_NONE pages on top of RAM, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 10/15] vhost-user-test: do not reinvent glib-compat.h, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 13/15] pc: memhp: force gaps between DIMM's GPA, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 02/15] virtio: introduce virtqueue_discard(), Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 09/15] virtio-9p: migrate virtio subsections,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 04/15] oslib: rework anonimous RAM allocation, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 15/15] vhost-user-test: fix predictable filename on tmpfs, Michael S. Tsirkin, 2015/10/08
- [Qemu-devel] [PULL 14/15] vhost-user-test: use tmpfs by default, Michael S. Tsirkin, 2015/10/08