From nobody Wed May 14 13:16:11 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1522853280899552.7981092461645; Wed, 4 Apr 2018 07:48:00 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6F4D08B10F; Wed, 4 Apr 2018 14:47:59 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 268BA808D7; Wed, 4 Apr 2018 14:47:59 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A980B181D0A7; Wed, 4 Apr 2018 14:47:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w34Eg4cT020126 for ; Wed, 4 Apr 2018 10:42:04 -0400 Received: by smtp.corp.redhat.com (Postfix) id 575152026985; Wed, 4 Apr 2018 14:42:04 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F2C2B2024CA2 for ; Wed, 4 Apr 2018 14:42:03 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 90C021044DE; Wed, 4 Apr 2018 16:42:01 +0200 (CEST) From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 4 Apr 2018 16:40:59 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 10/68] qemu: Introduce qemuMigrationParams struct X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 04 Apr 2018 14:48:00 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Currently migration parameters are stored in a structure which mimics the QEMU migration parameters handled by query-migrate-parameters and migrate-set-parameters. The new structure will become a libvirt's abstraction on top of QEMU migration parameters, capabilities, and related stuff. Signed-off-by: Jiri Denemark --- src/qemu/qemu_driver.c | 6 ++-- src/qemu/qemu_migration.c | 26 +++++++------- src/qemu/qemu_migration.h | 2 +- src/qemu/qemu_migration_params.c | 62 ++++++++++++++++---------------- src/qemu/qemu_migration_params.h | 21 +++++++---- 5 files changed, 62 insertions(+), 55 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c157ff9bb0..6e6fc130c5 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12241,7 +12241,7 @@ qemuDomainMigratePerform(virDomainPtr dom, int ret =3D -1; const char *dconnuri =3D NULL; qemuMigrationCompressionPtr compression =3D NULL; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); =20 @@ -12669,7 +12669,7 @@ qemuDomainMigratePerform3(virDomainPtr dom, virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuMigrationCompressionPtr compression =3D NULL; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); @@ -12725,7 +12725,7 @@ qemuDomainMigratePerform3Params(virDomainPtr dom, unsigned long long bandwidth =3D 0; int nbdPort =3D 0; qemuMigrationCompressionPtr compression =3D NULL; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index ffdf0ba2e5..a6f8e66891 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2254,7 +2254,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, int rv; char *tlsAlias =3D NULL; char *secAlias =3D NULL; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; =20 virNWFilterReadLockFilterUpdates(); =20 @@ -2468,7 +2468,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, goto stopjob; =20 /* Force reset of 'tls-hostname', it's a source only parameter */ - if (VIR_STRDUP(migParams->tlsHostname, "") < 0) + if (VIR_STRDUP(migParams->params.tlsHostname, "") < 0) goto stopjob; =20 } else { @@ -3340,7 +3340,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, size_t nmigrate_disks, const char **migrate_disks, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { int ret =3D -1; unsigned int migrate_flags =3D QEMU_MONITOR_MIGRATE_BACKGROUND; @@ -3429,11 +3429,11 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, * connect directly to the destination. */ if (spec->destType =3D=3D MIGRATION_DEST_CONNECT_HOST || spec->destType =3D=3D MIGRATION_DEST_FD) { - if (VIR_STRDUP(migParams->tlsHostname, spec->dest.host.name) <= 0) + if (VIR_STRDUP(migParams->params.tlsHostname, spec->dest.host.= name) < 0) goto error; } else { /* Be sure there's nothing from a previous migration */ - if (VIR_STRDUP(migParams->tlsHostname, "") < 0) + if (VIR_STRDUP(migParams->params.tlsHostname, "") < 0) goto error; } } else { @@ -3736,7 +3736,7 @@ qemuMigrationSrcPerformNative(virQEMUDriverPtr driver, size_t nmigrate_disks, const char **migrate_disks, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virURIPtr uribits =3D NULL; @@ -3815,7 +3815,7 @@ qemuMigrationSrcPerformTunnel(virQEMUDriverPtr driver, size_t nmigrate_disks, const char **migrate_disks, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { int ret =3D -1; qemuMigrationSpec spec; @@ -3887,7 +3887,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, virStreamPtr st =3D NULL; unsigned long destflags; qemuMigrationCompressionPtr compression =3D NULL; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; =20 VIR_DEBUG("driver=3D%p, sconn=3D%p, dconn=3D%p, vm=3D%p, dconnuri=3D%s= , " "flags=3D0x%lx, dname=3D%s, resource=3D%lu", @@ -4042,7 +4042,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr dr= iver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, + qemuMigrationParamsPtr migParams, unsigned long long bandwidth, bool useParams, unsigned long flags) @@ -4401,7 +4401,7 @@ qemuMigrationSrcPerformPeer2Peer(virQEMUDriverPtr dri= ver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, + qemuMigrationParamsPtr migParams, unsigned long flags, const char *dname, unsigned long resource, @@ -4566,7 +4566,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, + qemuMigrationParamsPtr migParams, const char *cookiein, int cookieinlen, char **cookieout, @@ -4679,7 +4679,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver, size_t nmigrate_disks, const char **migrate_disks, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, + qemuMigrationParamsPtr migParams, const char *cookiein, int cookieinlen, char **cookieout, @@ -4753,7 +4753,7 @@ qemuMigrationSrcPerform(virQEMUDriverPtr driver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, + qemuMigrationParamsPtr migParams, const char *cookiein, int cookieinlen, char **cookieout, diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h index 32028845a7..b15eca9e51 100644 --- a/src/qemu/qemu_migration.h +++ b/src/qemu/qemu_migration.h @@ -183,7 +183,7 @@ qemuMigrationSrcPerform(virQEMUDriverPtr driver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, + qemuMigrationParamsPtr migParams, const char *cookiein, int cookieinlen, char **cookieout, diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index c91216a2a4..187c0c2258 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -38,10 +38,10 @@ VIR_LOG_INIT("qemu.qemu_migration_params"); #define QEMU_MIGRATION_TLS_ALIAS_BASE "libvirt_migrate" =20 =20 -qemuMonitorMigrationParamsPtr +qemuMigrationParamsPtr qemuMigrationParamsNew(void) { - qemuMonitorMigrationParamsPtr params; + qemuMigrationParamsPtr params; =20 if (VIR_ALLOC(params) < 0) return NULL; @@ -51,23 +51,23 @@ qemuMigrationParamsNew(void) =20 =20 void -qemuMigrationParamsFree(qemuMonitorMigrationParamsPtr migParams) +qemuMigrationParamsFree(qemuMigrationParamsPtr migParams) { if (!migParams) return; =20 - VIR_FREE(migParams->tlsCreds); - VIR_FREE(migParams->tlsHostname); + VIR_FREE(migParams->params.tlsCreds); + VIR_FREE(migParams->params.tlsHostname); VIR_FREE(migParams); } =20 =20 -qemuMonitorMigrationParamsPtr +qemuMigrationParamsPtr qemuMigrationParamsFromFlags(virTypedParameterPtr params, int nparams, unsigned long flags) { - qemuMonitorMigrationParamsPtr migParams; + qemuMigrationParamsPtr migParams; =20 if (!(migParams =3D qemuMigrationParamsNew())) return NULL; @@ -80,11 +80,11 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr param= s, int rc; \ if ((rc =3D virTypedParamsGetInt(params, nparams, \ VIR_MIGRATE_PARAM_ ## PARAM, \ - &migParams->VAR)) < 0) \ + &migParams->params.VAR)) < 0) \ goto error; \ \ if (rc =3D=3D 1) \ - migParams->VAR ## _set =3D true; \ + migParams->params.VAR ## _set =3D true; \ } while (0) =20 GET(AUTO_CONVERGE_INITIAL, cpuThrottleInitial); @@ -92,8 +92,8 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr params, =20 #undef GET =20 - if ((migParams->cpuThrottleInitial_set || - migParams->cpuThrottleIncrement_set) && + if ((migParams->params.cpuThrottleInitial_set || + migParams->params.cpuThrottleIncrement_set) && !(flags & VIR_MIGRATE_AUTO_CONVERGE)) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("Turn auto convergence on to tune it")); @@ -112,7 +112,7 @@ int qemuMigrationParamsSet(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; @@ -120,7 +120,7 @@ qemuMigrationParamsSet(virQEMUDriverPtr driver, if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; =20 - if (qemuMonitorSetMigrationParams(priv->mon, migParams) < 0) + if (qemuMonitorSetMigrationParams(priv->mon, &migParams->params) < 0) goto cleanup; =20 ret =3D 0; @@ -153,7 +153,7 @@ qemuMigrationParamsCheckTLSCreds(virQEMUDriverPtr drive= r, { int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; =20 if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; @@ -161,11 +161,11 @@ qemuMigrationParamsCheckTLSCreds(virQEMUDriverPtr dri= ver, if (!(migParams =3D qemuMigrationParamsNew())) goto cleanup; =20 - if (qemuMonitorGetMigrationParams(priv->mon, migParams) < 0) + if (qemuMonitorGetMigrationParams(priv->mon, &migParams->params) < 0) goto cleanup; =20 /* NB: Could steal NULL pointer too! Let caller decide what to do. */ - VIR_STEAL_PTR(priv->migTLSAlias, migParams->tlsCreds); + VIR_STEAL_PTR(priv->migTLSAlias, migParams->params.tlsCreds); =20 ret =3D 0; =20 @@ -251,7 +251,7 @@ qemuMigrationParamsAddTLSObjects(virQEMUDriverPtr drive= r, int asyncJob, char **tlsAlias, char **secAlias, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virJSONValuePtr tlsProps =3D NULL; @@ -274,7 +274,7 @@ qemuMigrationParamsAddTLSObjects(virQEMUDriverPtr drive= r, *tlsAlias, &tlsProps) < 0) goto error; =20 - if (VIR_STRDUP(migParams->tlsCreds, *tlsAlias) < 0) + if (VIR_STRDUP(migParams->params.tlsCreds, *tlsAlias) < 0) goto error; =20 return 0; @@ -302,7 +302,7 @@ int qemuMigrationParamsSetEmptyTLS(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 @@ -312,8 +312,8 @@ qemuMigrationParamsSetEmptyTLS(virQEMUDriverPtr driver, if (!priv->migTLSAlias) return 0; =20 - if (VIR_STRDUP(migParams->tlsCreds, "") < 0 || - VIR_STRDUP(migParams->tlsHostname, "") < 0) + if (VIR_STRDUP(migParams->params.tlsCreds, "") < 0 || + VIR_STRDUP(migParams->params.tlsHostname, "") < 0) return -1; =20 return 0; @@ -325,7 +325,7 @@ qemuMigrationParamsSetCompression(virQEMUDriverPtr driv= er, virDomainObjPtr vm, int asyncJob, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) + qemuMigrationParamsPtr migParams) { int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -347,14 +347,14 @@ qemuMigrationParamsSetCompression(virQEMUDriverPtr dr= iver, if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; =20 - migParams->compressLevel_set =3D compression->level_set; - migParams->compressLevel =3D compression->level; + migParams->params.compressLevel_set =3D compression->level_set; + migParams->params.compressLevel =3D compression->level; =20 - migParams->compressThreads_set =3D compression->threads_set; - migParams->compressThreads =3D compression->threads; + migParams->params.compressThreads_set =3D compression->threads_set; + migParams->params.compressThreads =3D compression->threads; =20 - migParams->decompressThreads_set =3D compression->dthreads_set; - migParams->decompressThreads =3D compression->dthreads; + migParams->params.decompressThreads_set =3D compression->dthreads_set; + migParams->params.decompressThreads =3D compression->dthreads; =20 if (compression->xbzrle_cache_set && qemuMonitorSetMigrationCacheSize(priv->mon, @@ -389,7 +389,7 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; char *tlsAlias =3D NULL; char *secAlias =3D NULL; - qemuMonitorMigrationParamsPtr migParams =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 if (qemuMigrationParamsCheckTLSCreds(driver, vm, asyncJob) < 0) @@ -412,8 +412,8 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias); qemuDomainSecretInfoFree(&priv->migSecinfo); =20 - if (VIR_STRDUP(migParams->tlsCreds, "") < 0 || - VIR_STRDUP(migParams->tlsHostname, "") < 0 || + if (VIR_STRDUP(migParams->params.tlsCreds, "") < 0 || + VIR_STRDUP(migParams->params.tlsHostname, "") < 0 || qemuMigrationParamsSet(driver, vm, asyncJob, migParams) < 0) goto cleanup; =20 diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 247455b1cd..f5e64dcc1d 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -47,22 +47,29 @@ struct _qemuMigrationCompression { }; =20 =20 -qemuMonitorMigrationParamsPtr +typedef struct _qemuMigrationParams qemuMigrationParams; +typedef qemuMigrationParams *qemuMigrationParamsPtr; +struct _qemuMigrationParams { + qemuMonitorMigrationParams params; +}; + + +qemuMigrationParamsPtr qemuMigrationParamsNew(void); =20 -qemuMonitorMigrationParamsPtr +qemuMigrationParamsPtr qemuMigrationParamsFromFlags(virTypedParameterPtr params, int nparams, unsigned long flags); =20 void -qemuMigrationParamsFree(qemuMonitorMigrationParamsPtr migParams); +qemuMigrationParamsFree(qemuMigrationParamsPtr migParams); =20 int qemuMigrationParamsSet(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMonitorMigrationParamsPtr migParams); + qemuMigrationParamsPtr migParams); =20 int qemuMigrationParamsCheckSetupTLS(virQEMUDriverPtr driver, @@ -78,20 +85,20 @@ qemuMigrationParamsAddTLSObjects(virQEMUDriverPtr drive= r, int asyncJob, char **tlsAlias, char **secAlias, - qemuMonitorMigrationParamsPtr migParams); + qemuMigrationParamsPtr migParams); =20 int qemuMigrationParamsSetEmptyTLS(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMonitorMigrationParamsPtr migParams); + qemuMigrationParamsPtr migParams); =20 int qemuMigrationParamsSetCompression(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams); + qemuMigrationParamsPtr migParams); =20 void qemuMigrationParamsReset(virQEMUDriverPtr driver, --=20 2.17.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list