From nobody Wed Dec 17 08:56:40 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1744284203; cv=none; d=zohomail.com; s=zohoarc; b=KV3BuXG8R2nDcdXuF/HfL78fd5HD85axpS5pXq2iNG/tps0RvpP7/w/2VsOvn3lJNUZvfaWrnW9pIG7qBdPHAnvILvnX64GdCTVkvAsIq2xwcLQExF20PcuD5wwH9orGKekLL5c/LRSVY123dOfk3HyYBUBobQ+md7pc2Qsz99I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1744284203; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=2mspCvGN94NECOpZ7jJOK+P2KDUbw4k/n3/vqR5AJLQ=; b=W40FCUCDzPYbaR22jq9X5O1zZCFEUJ/Zp0vTB819EvjIwZXgUdqhk4YG5M7q+wZFNLQfP4vaRgBQYUMYMp90PMnKQsJe1vVETB7FJ2xs9XrfbFTkTn4LqUya27izFLLk8h0rz36+4pvRtIAjpTMxm+HhtzkF3l2oKL3ZHS1gMBo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1744284203471729.5626283602744; Thu, 10 Apr 2025 04:23:23 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 78CF9176A; Thu, 10 Apr 2025 07:23:22 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 1AFA217DF; Thu, 10 Apr 2025 07:22:36 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 2C13A1392; Thu, 10 Apr 2025 07:22:31 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 842A7143B for ; Thu, 10 Apr 2025 07:22:30 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-610-EHiys98ONiiLHNFiAoMN-A-1; Thu, 10 Apr 2025 07:22:29 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7D9D51800361 for ; Thu, 10 Apr 2025 11:22:28 +0000 (UTC) Received: from orkuz (unknown [10.43.3.115]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 173E91808882 for ; Thu, 10 Apr 2025 11:22:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744284150; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+RZUdP/7PZE3mF03jpc7twZ4OmQkwS9HKrBYmBUtzf8=; b=WYHNL7T19EVYxt00tny2GrYV99B8FtPBipNrrkHw7V8a7ESO5G8OMNHtPW6fHkfvvWY25J 1FRR1ZNLUjJtB7oB0xu7jkxC82XRwmCWDPz/eZpk7NhdFNFW+QL6E39JxFHwiGK9JJfoBh ZlWGYGF+JL9g1Tc+NRep+Ay3hOfh3uc= X-MC-Unique: EHiys98ONiiLHNFiAoMN-A-1 X-Mimecast-MFC-AGG-ID: EHiys98ONiiLHNFiAoMN-A_1744284148 To: devel@lists.libvirt.org Subject: [PATCH 1/2] qemu: Rename outgoingMigration parameter in various TPM functions Date: Thu, 10 Apr 2025 13:22:22 +0200 Message-ID: <8c03b96c3d212d1f00abc54692e1c3af0d078d1b.1744284095.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: swdtk9TsdWXoluSiNbz-Y6RIz4kHwhrCqgx8OcWV5dE_1744284148 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 42JFWBURAD5NEWOGV2PRLS7HTJRXBU4D X-Message-ID-Hash: 42JFWBURAD5NEWOGV2PRLS7HTJRXBU4D X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1744284205478019100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark The parameter is used to skip TPM state cleanup on outgoing migration with shared storage. But we also need to skip the cleanup after a failed incoming migration. Let's call the parameter "migration" to reflect its usage on both sides of migration. Signed-off-by: Jiri Denemark --- src/qemu/qemu_domain.c | 8 ++++---- src/qemu/qemu_domain.h | 2 +- src/qemu/qemu_extdevice.c | 8 ++++---- src/qemu/qemu_extdevice.h | 4 ++-- src/qemu/qemu_tpm.c | 19 +++++++++---------- src/qemu/qemu_tpm.h | 4 ++-- 6 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c3ca4b3040..47c110c6d7 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5790,7 +5790,7 @@ static void qemuDomainRemoveInactiveCommon(virQEMUDriver *driver, virDomainObj *vm, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *snapDir =3D NULL; @@ -5816,7 +5816,7 @@ qemuDomainRemoveInactiveCommon(virQEMUDriver *driver, if (rmdir(chkDir) < 0 && errno !=3D ENOENT) VIR_WARN("unable to remove checkpoint directory %s", chkDir); } - qemuExtDevicesCleanupHost(driver, vm->def, flags, outgoingMigration); + qemuExtDevicesCleanupHost(driver, vm->def, flags, migration); } =20 =20 @@ -5829,14 +5829,14 @@ void qemuDomainRemoveInactive(virQEMUDriver *driver, virDomainObj *vm, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) { if (vm->persistent) { /* Short-circuit, we don't want to remove a persistent domain */ return; } =20 - qemuDomainRemoveInactiveCommon(driver, vm, flags, outgoingMigration); + qemuDomainRemoveInactiveCommon(driver, vm, flags, migration); =20 virDomainObjListRemove(driver->domains, vm); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 70e1fb187f..6fd47f16e7 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -693,7 +693,7 @@ int qemuDomainMomentDiscardAll(void *payload, void qemuDomainRemoveInactive(virQEMUDriver *driver, virDomainObj *vm, virDomainUndefineFlagsValues flags, - bool outgoingMigration); + bool migration); =20 void qemuDomainRemoveInactiveLocked(virQEMUDriver *driver, diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c index 78e72b7c10..31c7a14156 100644 --- a/src/qemu/qemu_extdevice.c +++ b/src/qemu/qemu_extdevice.c @@ -154,7 +154,7 @@ void qemuExtDevicesCleanupHost(virQEMUDriver *driver, virDomainDef *def, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) { size_t i; =20 @@ -165,7 +165,7 @@ qemuExtDevicesCleanupHost(virQEMUDriver *driver, virDomainTPMDef *tpm =3D def->tpms[i]; =20 if (tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) - qemuExtTPMCleanupHost(driver, tpm, flags, outgoingMigration); + qemuExtTPMCleanupHost(driver, tpm, flags, migration); } } =20 @@ -280,7 +280,7 @@ qemuExtDevicesStart(virQEMUDriver *driver, void qemuExtDevicesStop(virQEMUDriver *driver, virDomainObj *vm, - bool outgoingMigration) + bool migration) { virDomainDef *def =3D vm->def; size_t i; @@ -297,7 +297,7 @@ qemuExtDevicesStop(virQEMUDriver *driver, =20 for (i =3D 0; i < def->ntpms; i++) { if (def->tpms[i]->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) - qemuExtTPMStop(driver, vm, outgoingMigration); + qemuExtTPMStop(driver, vm, migration); } =20 for (i =3D 0; i < def->nnets; i++) { diff --git a/src/qemu/qemu_extdevice.h b/src/qemu/qemu_extdevice.h index d4ac9f395c..36f7fb77a8 100644 --- a/src/qemu/qemu_extdevice.h +++ b/src/qemu/qemu_extdevice.h @@ -48,7 +48,7 @@ int qemuExtDevicesPrepareHost(virQEMUDriver *driver, void qemuExtDevicesCleanupHost(virQEMUDriver *driver, virDomainDef *def, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 int qemuExtDevicesStart(virQEMUDriver *driver, @@ -59,7 +59,7 @@ int qemuExtDevicesStart(virQEMUDriver *driver, =20 void qemuExtDevicesStop(virQEMUDriver *driver, virDomainObj *vm, - bool outgoingMigration) + bool migration) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 bool qemuExtDevicesHasDevice(virDomainDef *def); diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index 3e97518c06..0d3be3971a 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -929,7 +929,8 @@ qemuTPMEmulatorInitPaths(virDomainTPMDef *tpm, * @driver: QEMU driver * @tpm: TPM definition * @flags: flags indicating whether to keep or remove TPM persistent state - * @outgoingMigration: whether cleanup is due to an outgoing migration + * @migration: whether cleanup is due to a successful outgoing or failed + * incoming migration * * Clean up persistent storage for the swtpm. */ @@ -937,14 +938,12 @@ static void qemuTPMEmulatorCleanupHost(virQEMUDriver *driver, virDomainTPMDef *tpm, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); =20 - /* Never remove the state in case of outgoing migration with shared - * storage. - */ - if (outgoingMigration && + /* Never remove the state in case of migration with shared storage. */ + if (migration && virFileIsSharedFS(tpm->data.emulator.source_path, cfg->sharedFiles= ystems) =3D=3D 1) return; =20 @@ -1315,9 +1314,9 @@ void qemuExtTPMCleanupHost(virQEMUDriver *driver, virDomainTPMDef *tpm, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) { - qemuTPMEmulatorCleanupHost(driver, tpm, flags, outgoingMigration); + qemuTPMEmulatorCleanupHost(driver, tpm, flags, migration); } =20 =20 @@ -1341,7 +1340,7 @@ qemuExtTPMStart(virQEMUDriver *driver, void qemuExtTPMStop(virQEMUDriver *driver, virDomainObj *vm, - bool outgoingMigration) + bool migration) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *shortName =3D virDomainDefGetShortName(vm->def); @@ -1351,7 +1350,7 @@ qemuExtTPMStop(virQEMUDriver *driver, return; =20 qemuTPMEmulatorStop(cfg->swtpmStateDir, shortName); - if (outgoingMigration && qemuTPMHasSharedStorage(driver, vm->def)) + if (migration && qemuTPMHasSharedStorage(driver, vm->def)) restoreTPMStateLabel =3D false; =20 if (qemuSecurityRestoreTPMLabels(driver, vm, restoreTPMStateLabel, fal= se) < 0) diff --git a/src/qemu/qemu_tpm.h b/src/qemu/qemu_tpm.h index 7096060a2a..37813087cf 100644 --- a/src/qemu/qemu_tpm.h +++ b/src/qemu/qemu_tpm.h @@ -38,7 +38,7 @@ int qemuExtTPMPrepareHost(virQEMUDriver *driver, void qemuExtTPMCleanupHost(virQEMUDriver *driver, virDomainTPMDef *tpm, virDomainUndefineFlagsValues flags, - bool outgoingMigration) + bool migration) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 int qemuExtTPMStart(virQEMUDriver *driver, @@ -52,7 +52,7 @@ int qemuExtTPMStart(virQEMUDriver *driver, =20 void qemuExtTPMStop(virQEMUDriver *driver, virDomainObj *vm, - bool outgoingMigration) + bool migration) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 int qemuExtTPMSetupCgroup(virQEMUDriver *driver, --=20 2.49.0