From: Peter Krempa <pkrempa@redhat.com>
Libvirt detects QEMU_CAPS_MIGRATE_RDMA by probing
'query-migrate-capabilities' for the presence of 'rdma-pin-all'.
In qemu the entry in 'query-migrate-capabilities' existed since the
introduction of the command in qemu-2.0. We thus always detect this
capability.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
src/qemu/qemu_migration.c | 26 +++++++-------------------
src/qemu/qemu_migration.h | 3 +--
src/qemu/qemu_process.c | 2 +-
3 files changed, 9 insertions(+), 22 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index b22248e3b9..a8f4dd489c 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2387,20 +2387,14 @@ qemuMigrationDstOPDRelocate(virQEMUDriver *driver G_GNUC_UNUSED,
int
-qemuMigrationDstCheckProtocol(virQEMUCaps *qemuCaps,
- const char *migrateFrom)
+qemuMigrationDstCheckProtocol(const char *migrateFrom)
{
- if (STRPREFIX(migrateFrom, "rdma")) {
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATE_RDMA)) {
- virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
- _("incoming RDMA migration is not supported with this QEMU binary"));
- return -1;
- }
- } else if (!STRPREFIX(migrateFrom, "tcp") &&
- !STRPREFIX(migrateFrom, "exec") &&
- !STRPREFIX(migrateFrom, "fd") &&
- !STRPREFIX(migrateFrom, "unix") &&
- STRNEQ(migrateFrom, "stdio")) {
+ if (!STRPREFIX(migrateFrom, "tcp") &&
+ !STRPREFIX(migrateFrom, "exec") &&
+ !STRPREFIX(migrateFrom, "fd") &&
+ !STRPREFIX(migrateFrom, "unix") &&
+ !STRPREFIX(migrateFrom, "rdma") &&
+ STRNEQ(migrateFrom, "stdio")) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("unknown migration protocol"));
return -1;
@@ -5330,7 +5324,6 @@ qemuMigrationSrcPerformNative(virQEMUDriver *driver,
qemuMigrationParams *migParams,
const char *nbdURI)
{
- qemuDomainObjPrivate *priv = vm->privateData;
g_autoptr(virURI) uribits = NULL;
int ret = -1;
qemuMigrationSpec spec;
@@ -5353,11 +5346,6 @@ qemuMigrationSrcPerformNative(virQEMUDriver *driver,
}
if (STREQ(uribits->scheme, "rdma")) {
- if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATE_RDMA)) {
- virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
- _("outgoing RDMA migration is not supported with this QEMU binary"));
- return -1;
- }
if (!virMemoryLimitIsSet(vm->def->mem.hard_limit)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("cannot start RDMA migration with no memory hard limit set"));
diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h
index beb888160a..36865040df 100644
--- a/src/qemu/qemu_migration.h
+++ b/src/qemu/qemu_migration.h
@@ -274,8 +274,7 @@ qemuMigrationDstErrorReport(virQEMUDriver *driver,
const char *name);
int
-qemuMigrationDstCheckProtocol(virQEMUCaps *qemuCaps,
- const char *migrateFrom);
+qemuMigrationDstCheckProtocol(const char *migrateFrom);
char *
qemuMigrationDstGetURI(const char *migrateFrom,
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index a81c02c9d5..059834648d 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4997,7 +4997,7 @@ qemuProcessIncomingDefNew(virQEMUDriver *driver,
qemuDomainObjPrivate *priv = vm->privateData;
qemuProcessIncomingDef *inc = NULL;
- if (qemuMigrationDstCheckProtocol(priv->qemuCaps, migrateFrom) < 0)
+ if (qemuMigrationDstCheckProtocol(migrateFrom) < 0)
return NULL;
inc = g_new0(qemuProcessIncomingDef, 1);
--
2.51.0