SHA256
1
0
forked from pool/libvirt
libvirt/93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch
James Fehlig c93c63891d Accepting request 794957 from home:jfehlig:branches:Virtualization
- qemu: fix hang in p2p + xbzrle compression + parallel migration
  93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch
  bsc#1161159

OBS-URL: https://build.opensuse.org/request/show/794957
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=822
2020-04-17 16:30:52 +00:00

41 lines
1.7 KiB
Diff

commit 93b15ba0f2eb7858f8d88a5fd7354bd48bb7fc8d
Author: Lin Ma <lma@suse.com>
Date: Thu Apr 16 12:44:51 2020 +0800
qemu: fix hang in p2p + xbzrle compression + parallel migration
When we do parallel migration, The multifd-channels migration parameter
needs to be set on the destination side as well before incoming migration
URI, unless we accept the default number of connections(2).
Usually, This can be correctly handled by libvirtd. But in this case if
we use p2p + xbzrle compression without parameter '--comp-xbzrle-cache',
qemuMigrationParamsDump returns too early, The corresponding migration
parameter will not be set on the destination side, It results QEMU hangs.
Reproducer:
virsh migrate --live --p2p --comp-methods xbzrle \
--parallel --parallel-connections 3 GUEST qemu+ssh://dsthost/system
or
virsh migrate --live --p2p --compressed \
--parallel --parallel-connections 3 GUEST qemu+ssh://dsthost/system
Signed-off-by: Lin Ma <lma@suse.com>
Message-Id: <20200416044451.21134-1-lma@suse.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Index: libvirt-6.0.0/src/qemu/qemu_migration_params.c
===================================================================
--- libvirt-6.0.0.orig/src/qemu/qemu_migration_params.c
+++ libvirt-6.0.0/src/qemu/qemu_migration_params.c
@@ -630,7 +630,6 @@ qemuMigrationParamsDump(qemuMigrationPar
if (migParams->compMethods == 1ULL << QEMU_MIGRATION_COMPRESS_XBZRLE &&
!migParams->params[QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE].set) {
*flags |= VIR_MIGRATE_COMPRESSED;
- return 0;
}
for (i = 0; i < QEMU_MIGRATION_COMPRESS_LAST; ++i) {