/* Increase migration bandwidth to unlimited since target is a file.
* Failure to change migration speed is not fatal. */
- if (!(migParams = qemuMigrationParamsNew()))
+ if (!(migParams = qemuMigrationParamsForSave(false)))
return -1;
if (qemuMigrationParamsSetULL(migParams,
}
+qemuMigrationParams *
+qemuMigrationParamsForSave(bool sparse)
+{
+ g_autoptr(qemuMigrationParams) saveParams = NULL;
+
+ if (!(saveParams = qemuMigrationParamsNew()))
+ return NULL;
+
+ if (sparse) {
+ if (virBitmapSetBit(saveParams->caps, QEMU_MIGRATION_CAP_MAPPED_RAM) < 0)
+ return NULL;
+ if (virBitmapSetBit(saveParams->caps, QEMU_MIGRATION_CAP_MULTIFD) < 0)
+ return NULL;
+ saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].value.i = 1;
+ saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].set = true;
+ }
+
+ return g_steal_pointer(&saveParams);
+}
+
+
int
qemuMigrationParamsDump(qemuMigrationParams *migParams,
virTypedParameterPtr *params,
unsigned int flags,
qemuMigrationParty party);
+qemuMigrationParams *
+qemuMigrationParamsForSave(bool sparse);
+
int
qemuMigrationParamsDump(qemuMigrationParams *migParams,
virTypedParameterPtr *params,