libvirt/qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch
AlexChen 811898dff8 cherry-pick some bugfix patches from open source community
cherry-pick patchs list:
2ab8dba5    qemuDomainGetUnplugTimeout: Add G_GNUC_NO_INLINE 
423664a6    virNetDevSwitchdevFeature: Make failure to get 'family_id' non-fatal 
ca616274    virNetDevGetFamilyId: Change signature 
67b973b5    qemuDomainDefPostParse: Fail if unable to fill machine type 
67e19fc9    qemu: Revoke access to mirror on failed blockcopy 
93b15ba0    qemu: fix hang in p2p + xbzrle compression + parallel migration 
a13ac587    util: fix iteration in virSocketAddrResolveService 
88011ed2    libxl: fix crash when initializing driver

Signed-off-by: AlexChen <alex.chen@huawei.com>
2020-09-29 16:59:08 +08:00

48 lines
1.8 KiB
Diff

From f15935ea3b510bf0633dc2219a132412a7a8e96c Mon Sep 17 00:00:00 2001
From: Lin Ma <lma@suse.com>
Date: Thu, 16 Apr 2020 12:44:51 +0800
Subject: [PATCH 3/8] 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>
Signed-off-by: AlexChen <alex.chen@huawei.com>
---
src/qemu/qemu_migration_params.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c
index dd5e2ce1b6..810199370f 100644
--- a/src/qemu/qemu_migration_params.c
+++ b/src/qemu/qemu_migration_params.c
@@ -630,7 +630,6 @@ qemuMigrationParamsDump(qemuMigrationParamsPtr migParams,
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) {
--
2.23.0