From b020ddee84458afd8de70d9f296b91fa2b6a95fd Mon Sep 17 00:00:00 2001 Message-Id: From: Peter Krempa Date: Fri, 15 Jul 2022 14:16:54 +0200 Subject: [PATCH] qemu: Always assume support for QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE The 'xbzrle-cache-size' parameter was added in qemu-2.11 thus all supported qemu versions now use the new code path. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik (cherry picked from commit 06e0ba3da71ec6c58024efe57d0f55d3d1352d60) This commit is not strictly needed for fixing the following BZ, but it removes a code which will be never executed in RHEL 9 and backporting it avoids conflicts with the actual bug fix. https://bugzilla.redhat.com/show_bug.cgi?id=2107892 Signed-off-by: Jiri Denemark --- src/qemu/qemu_driver.c | 56 +++++++++----------------------- src/qemu/qemu_migration_params.c | 18 ---------- 2 files changed, 16 insertions(+), 58 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 17e4c23199..256e126ae1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -13172,10 +13172,8 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr dom, { virQEMUDriver *driver = dom->conn->privateData; virDomainObj *vm; - qemuDomainObjPrivate *priv; g_autoptr(qemuMigrationParams) migParams = NULL; int ret = -1; - int rc; virCheckFlags(0, -1); @@ -13191,8 +13189,6 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr dom, if (virDomainObjCheckActive(vm) < 0) goto endjob; - priv = vm->privateData; - if (!qemuMigrationCapsGet(vm, QEMU_MIGRATION_CAP_XBZRLE)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Compressed migration is not supported by " @@ -13200,22 +13196,14 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr dom, goto endjob; } - if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE)) { - if (qemuMigrationParamsFetch(driver, vm, VIR_ASYNC_JOB_NONE, - &migParams) < 0) - goto endjob; + if (qemuMigrationParamsFetch(driver, vm, VIR_ASYNC_JOB_NONE, + &migParams) < 0) + goto endjob; - if (qemuMigrationParamsGetULL(migParams, - QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE, - cacheSize) < 0) - goto endjob; - } else { - qemuDomainObjEnterMonitor(driver, vm); - rc = qemuMonitorGetMigrationCacheSize(priv->mon, cacheSize); - qemuDomainObjExitMonitor(vm); - if (rc < 0) - goto endjob; - } + if (qemuMigrationParamsGetULL(migParams, + QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE, + cacheSize) < 0) + goto endjob; ret = 0; @@ -13234,10 +13222,8 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom, { virQEMUDriver *driver = dom->conn->privateData; virDomainObj *vm; - qemuDomainObjPrivate *priv; g_autoptr(qemuMigrationParams) migParams = NULL; int ret = -1; - int rc; virCheckFlags(0, -1); @@ -13253,8 +13239,6 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom, if (virDomainObjCheckActive(vm) < 0) goto endjob; - priv = vm->privateData; - if (!qemuMigrationCapsGet(vm, QEMU_MIGRATION_CAP_XBZRLE)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Compressed migration is not supported by " @@ -13263,25 +13247,17 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom, } VIR_DEBUG("Setting compression cache to %llu B", cacheSize); - if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE)) { - if (!(migParams = qemuMigrationParamsNew())) - goto endjob; + if (!(migParams = qemuMigrationParamsNew())) + goto endjob; - if (qemuMigrationParamsSetULL(migParams, - QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE, - cacheSize) < 0) - goto endjob; + if (qemuMigrationParamsSetULL(migParams, + QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE, + cacheSize) < 0) + goto endjob; - if (qemuMigrationParamsApply(driver, vm, VIR_ASYNC_JOB_NONE, - migParams, 0) < 0) - goto endjob; - } else { - qemuDomainObjEnterMonitor(driver, vm); - rc = qemuMonitorSetMigrationCacheSize(priv->mon, cacheSize); - qemuDomainObjExitMonitor(vm); - if (rc < 0) - goto endjob; - } + if (qemuMigrationParamsApply(driver, vm, VIR_ASYNC_JOB_NONE, + migParams, 0) < 0) + goto endjob; ret = 0; diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c index 6ea0bde13a..0bce358ac3 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -886,10 +886,8 @@ qemuMigrationParamsApply(virQEMUDriver *driver, unsigned long apiFlags) { qemuDomainObjPrivate *priv = vm->privateData; - bool xbzrleCacheSize_old = false; g_autoptr(virJSONValue) params = NULL; g_autoptr(virJSONValue) caps = NULL; - qemuMigrationParam xbzrle = QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE; bool postcopyResume = !!(apiFlags & VIR_MIGRATE_POSTCOPY_RESUME); int ret = -1; @@ -917,19 +915,6 @@ qemuMigrationParamsApply(virQEMUDriver *driver, } } - /* If QEMU is too old to support xbzrle-cache-size migration parameter, - * we need to set it via migrate-set-cache-size and tell - * qemuMonitorSetMigrationParams to ignore this parameter. - */ - if (migParams->params[xbzrle].set && - !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE)) { - if (qemuMonitorSetMigrationCacheSize(priv->mon, - migParams->params[xbzrle].value.ull) < 0) - goto cleanup; - xbzrleCacheSize_old = true; - migParams->params[xbzrle].set = false; - } - if (!(params = qemuMigrationParamsToJSON(migParams, postcopyResume))) goto cleanup; @@ -942,9 +927,6 @@ qemuMigrationParamsApply(virQEMUDriver *driver, cleanup: qemuDomainObjExitMonitor(vm); - if (xbzrleCacheSize_old) - migParams->params[xbzrle].set = true; - return ret; } -- 2.35.1