[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v7 11/24] vhost-user: add a migration blocker
From: |
marcandre . lureau |
Subject: |
[Qemu-devel] [PATCH v7 11/24] vhost-user: add a migration blocker |
Date: |
Thu, 1 Oct 2015 19:23:55 +0200 |
From: Marc-André Lureau <address@hidden>
If VHOST_USER_PROTOCOL_F_LOG_SHMFD is not announced, block vhost-user
migration. The blocker is removed in vhost_dev_cleanup().
Signed-off-by: Marc-André Lureau <address@hidden>
---
hw/virtio/vhost-user.c | 9 +++++++++
hw/virtio/vhost.c | 16 ++++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index cf14e38..f1edd04 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -15,6 +15,7 @@
#include "qemu/error-report.h"
#include "qemu/sockets.h"
#include "exec/ram_addr.h"
+#include "migration/migration.h"
#include <fcntl.h>
#include <unistd.h>
@@ -442,6 +443,14 @@ static int vhost_user_init(struct vhost_dev *dev, void
*opaque)
}
}
+ if (dev->migration_blocker == NULL &&
+ !virtio_has_feature(dev->protocol_features,
+ VHOST_USER_PROTOCOL_F_LOG_SHMFD)) {
+ error_setg(&dev->migration_blocker,
+ "Migration disabled: vhost-user backend lacks "
+ "VHOST_USER_PROTOCOL_F_LOG_SHMFD feature.");
+ }
+
return 0;
}
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index d1c0367..554e49d 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -944,6 +944,8 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
uint64_t features;
int i, r;
+ hdev->migration_blocker = NULL;
+
if (vhost_set_backend_type(hdev, backend_type) < 0) {
close((uintptr_t)opaque);
return -1;
@@ -987,12 +989,18 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
.eventfd_del = vhost_eventfd_del,
.priority = 10
};
- hdev->migration_blocker = NULL;
- if (!(hdev->features & (0x1ULL << VHOST_F_LOG_ALL))) {
- error_setg(&hdev->migration_blocker,
- "Migration disabled: vhost lacks VHOST_F_LOG_ALL feature.");
+
+ if (hdev->migration_blocker == NULL) {
+ if (!(hdev->features & (0x1ULL << VHOST_F_LOG_ALL))) {
+ error_setg(&hdev->migration_blocker,
+ "Migration disabled: vhost lacks VHOST_F_LOG_ALL
feature.");
+ }
+ }
+
+ if (hdev->migration_blocker != NULL) {
migrate_add_blocker(hdev->migration_blocker);
}
+
hdev->mem = g_malloc0(offsetof(struct vhost_memory, regions));
hdev->n_mem_sections = 0;
hdev->mem_sections = NULL;
--
2.4.3
- [Qemu-devel] [PATCH v7 02/24] linux-headers: add unistd.h, (continued)
- [Qemu-devel] [PATCH v7 02/24] linux-headers: add unistd.h, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 21/24] vhost-user-test: wrap server in TestServer struct, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 22/24] vhost-user-test: learn to tweak various qemu arguments, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 19/24] vhost-user-test: move wait_for_fds() out, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 09/24] vhost: alloc shareable log, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 14/24] net: add trace_vhost_user_event, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 23/24] vhost-user-test: add live-migration test, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 05/24] util: add fallback for qemu_memfd_alloc(), marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 06/24] vhost: document log resizing, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 08/24] vhost-user: add vhost_user_requires_shm_log(), marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 11/24] vhost-user: add a migration blocker,
marcandre . lureau <=
- [Qemu-devel] [PATCH v7 10/24] vhost-user: send log shm fd along with log_base, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 13/24] vhost-user: document migration log, marcandre . lureau, 2015/10/08
- [Qemu-devel] [PATCH v7 12/24] vhost: use a function for each call, marcandre . lureau, 2015/10/08
[Qemu-devel] [PATCH v7 15/24] vhost user: add support of live migration, marcandre . lureau, 2015/10/08
[Qemu-devel] [PATCH v7 18/24] vhost: add migration block if memfd failed, marcandre . lureau, 2015/10/08
[Qemu-devel] [PATCH v7 16/24] vhost user: add rarp sending after live migration for legacy guest, marcandre . lureau, 2015/10/08