render / rpms / libvirt

Forked from rpms/libvirt 10 months ago
Clone
a1c947
From d51e6092ed7977daf662ed1def0f6cd5cc6ba33d Mon Sep 17 00:00:00 2001
a1c947
Message-Id: <d51e6092ed7977daf662ed1def0f6cd5cc6ba33d@dist-git>
a1c947
From: Laine Stump <laine@redhat.com>
a1c947
Date: Wed, 27 Jul 2022 12:14:10 -0400
a1c947
Subject: [PATCH] qemu: don't call qemuMigrationSrcIsAllowedHostdev() from
a1c947
 qemuMigrationDstPrepareFresh()
a1c947
a1c947
This call to qemuMigrationSrcIsAllowedHostdev() (which does a
a1c947
hardcoded fail of the migration if there is any PCI or mdev hostdev
a1c947
device in the domain) while doing the destination side of migration
a1c947
prep was found once the call to that same function was removed from
a1c947
the source side migration prep (commit 25883cd5).
a1c947
a1c947
According to jdenemar, for the V2 migration protocol, prep of the
a1c947
destination is the first step, so this *was* the proper place to do
a1c947
the check, but for V3 migration this is in a way redundant (since we
a1c947
will have already done the check on the source side (updated by
a1c947
25883cd5 to query QEMU rather than do a hardcoded fail)).
a1c947
a1c947
Of course it's possible that the source could support migration of a
a1c947
particular VFIO device, but the destination doesn't. But the current
a1c947
check on the destination side is worthless even in that case, since it
a1c947
is just *always* failing rather than querying QEMU; and QEMU can't be
a1c947
queried at the point where the destination check is happening, since
a1c947
it isn't yet running.
a1c947
a1c947
Anyway QEMU should complain when it's started if it's going to fail,
a1c947
so removing this check should just move the failure to happen a bit
a1c947
later. So the best solution to this problem is to simply remove the
a1c947
hardcoded check/fail from qemuMigrationDstPrepareFresh() and rely on
a1c947
QEMU to fail if it needs to.
a1c947
a1c947
Fixes: 25883cd5f0b188f2417f294b7d219a77b219f7c2
a1c947
Signed-off-by: Laine Stump <laine@redhat.com>
a1c947
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
a1c947
(cherry picked from commit 640d185f01858b7a8db401235c929ac4798592d0)
a1c947
a1c947
https://bugzilla.redhat.com/show_bug.cgi?id=1497907
a1c947
a1c947
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a1c947
---
a1c947
 src/qemu/qemu_migration.c | 3 ---
a1c947
 1 file changed, 3 deletions(-)
a1c947
a1c947
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
a1c947
index 61fcaf4258..e3ba4c3f78 100644
a1c947
--- a/src/qemu/qemu_migration.c
a1c947
+++ b/src/qemu/qemu_migration.c
a1c947
@@ -3382,9 +3382,6 @@ qemuMigrationDstPrepareFresh(virQEMUDriver *driver,
a1c947
                       QEMU_MIGRATION_COOKIE_CAPS;
a1c947
     }
a1c947
 
a1c947
-    if (!qemuMigrationSrcIsAllowedHostdev(*def))
a1c947
-        goto cleanup;
a1c947
-
a1c947
     /* Let migration hook filter domain XML */
a1c947
     if (virHookPresent(VIR_HOOK_DRIVER_QEMU)) {
a1c947
         g_autofree char *xml = NULL;
a1c947
-- 
a1c947
2.35.1
a1c947