Skip to content

Commit 2481fce

Browse files
author
Jiri Denemark
committed
qemu: Avoid deprecated migrate-set-cache-size QMP command
The same functionality can be achieved using migrate-set-parameters QMP command with xbzrle-cache-size parameter. https://bugzilla.redhat.com/show_bug.cgi?id=1845012 Signed-off-by: Jiri Denemark <[email protected]> Reviewed-by: Peter Krempa <[email protected]>
1 parent 0b45add commit 2481fce

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/qemu/qemu_driver.c

+21-5
Original file line numberDiff line numberDiff line change
@@ -14032,7 +14032,9 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom,
1403214032
virQEMUDriverPtr driver = dom->conn->privateData;
1403314033
virDomainObjPtr vm;
1403414034
qemuDomainObjPrivatePtr priv;
14035+
g_autoptr(qemuMigrationParams) migParams = NULL;
1403514036
int ret = -1;
14037+
int rc;
1403614038

1403714039
virCheckFlags(0, -1);
1403814040

@@ -14057,13 +14059,27 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom,
1405714059
goto endjob;
1405814060
}
1405914061

14060-
qemuDomainObjEnterMonitor(driver, vm);
14061-
1406214062
VIR_DEBUG("Setting compression cache to %llu B", cacheSize);
14063-
ret = qemuMonitorSetMigrationCacheSize(priv->mon, cacheSize);
14063+
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE)) {
14064+
if (!(migParams = qemuMigrationParamsNew()))
14065+
goto endjob;
1406414066

14065-
if (qemuDomainObjExitMonitor(driver, vm) < 0)
14066-
ret = -1;
14067+
if (qemuMigrationParamsSetULL(migParams,
14068+
QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE,
14069+
cacheSize) < 0)
14070+
goto endjob;
14071+
14072+
if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_NONE,
14073+
migParams) < 0)
14074+
goto endjob;
14075+
} else {
14076+
qemuDomainObjEnterMonitor(driver, vm);
14077+
rc = qemuMonitorSetMigrationCacheSize(priv->mon, cacheSize);
14078+
if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
14079+
goto endjob;
14080+
}
14081+
14082+
ret = 0;
1406714083

1406814084
endjob:
1406914085
qemuDomainObjEndJob(driver, vm);

src/qemu/qemu_migration_params.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -869,8 +869,7 @@ qemuMigrationParamsApply(virQEMUDriverPtr driver,
869869
* qemuMonitorSetMigrationParams to ignore this parameter.
870870
*/
871871
if (migParams->params[xbzrle].set &&
872-
(!priv->job.migParams ||
873-
!priv->job.migParams->params[xbzrle].set)) {
872+
!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE)) {
874873
if (qemuMonitorSetMigrationCacheSize(priv->mon,
875874
migParams->params[xbzrle].value.ull) < 0)
876875
goto cleanup;

0 commit comments

Comments
 (0)