From nobody Thu May 16 01:12:40 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1704735062201199.67225985478547; Mon, 8 Jan 2024 09:31:02 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 1BD921B42; Mon, 8 Jan 2024 12:31:01 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id B344A1B7A; Mon, 8 Jan 2024 12:08:44 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id D7DE91B6F; Mon, 8 Jan 2024 12:08:23 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 5F50B1AC0 for ; Mon, 8 Jan 2024 12:06:49 -0500 (EST) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-643-GAdqwJFpN028vDWGoFeWhA-1; Mon, 08 Jan 2024 12:06:46 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9BCA229ABA0E for ; Mon, 8 Jan 2024 17:06:46 +0000 (UTC) Received: from orkuz (unknown [10.45.226.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5E8BBC159B0 for ; Mon, 8 Jan 2024 17:06:46 +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=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: GAdqwJFpN028vDWGoFeWhA-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 1/6] qemu: Document qemuMigrationParamsFlagMapItem fields Date: Mon, 8 Jan 2024 18:06:37 +0100 Message-ID: <5101dcd038f1fc293a1bac07edeeff0351d3d5a2.1704733372.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: 6V3QIPZQTPVYMA3BB7A4OMPXQPEZRAV3 X-Message-ID-Hash: 6V3QIPZQTPVYMA3BB7A4OMPXQPEZRAV3 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1704735063666100001 Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_migration_params.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 79fe6e97c8..9de6c08021 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -131,10 +131,20 @@ struct _qemuMigrationParamsAlwaysOnItem { =20 typedef struct _qemuMigrationParamsFlagMapItem qemuMigrationParamsFlagMapI= tem; struct _qemuMigrationParamsFlagMapItem { + /* Describes what to do with the capability if @flag is found. + * When se to QEMU_MIGRATION_FLAG_REQUIRED, the capability will be + * enabled iff the specified migration flag is enabled. On the other h= and + * QEMU_MIGRATION_FLAG_FORBIDDEN will enable the capability as long as + * the specified migration flag is not enabled. */ qemuMigrationFlagMatch match; + /* Migration flag to check. */ virDomainMigrateFlags flag; + /* Migration capability to be enabled or disabled based on the flag. */ qemuMigrationCapability cap; - int party; /* bit-wise OR of qemuMigrationParty */ + /* Bit-wise OR of qemuMigrationParty. Determines whether the capabilit= y has + * to be enabled on the source, on the destination, or on both sides of + * migration. */ + int party; }; =20 typedef struct _qemuMigrationParamsTPMapItem qemuMigrationParamsTPMapItem; --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Thu May 16 01:12:40 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1704734984003498.637309020756; Mon, 8 Jan 2024 09:29:44 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id E892C1AEA; Mon, 8 Jan 2024 12:29:42 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 147411B56; Mon, 8 Jan 2024 12:08:38 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 191531ADA; Mon, 8 Jan 2024 12:08:20 -0500 (EST) 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 5E0021A98 for ; Mon, 8 Jan 2024 12:06:49 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-650-oKfgrxHjMK2g4MULU-KeqA-1; Mon, 08 Jan 2024 12:06:47 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8D75F88B7A3 for ; Mon, 8 Jan 2024 17:06:47 +0000 (UTC) Received: from orkuz (unknown [10.45.226.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5163B5190 for ; Mon, 8 Jan 2024 17:06:47 +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.0 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE,UPPERCASE_50_75 autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: oKfgrxHjMK2g4MULU-KeqA-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 2/6] qemu: Use C99 initializers for qemuMigrationParamsFlagMap Date: Mon, 8 Jan 2024 18:06:38 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: 6C5BJZXDD2Q37OZXNPQSVCFA6U5KMQ4U X-Message-ID-Hash: 6C5BJZXDD2Q37OZXNPQSVCFA6U5KMQ4U 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1704734985168100001 Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_migration_params.c | 50 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 9de6c08021..b02a8af8d5 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -175,35 +175,35 @@ static const qemuMigrationParamsAlwaysOnItem qemuMigr= ationParamsAlwaysOn[] =3D { =20 /* Translation from virDomainMigrateFlags to qemuMigrationCapability. */ static const qemuMigrationParamsFlagMapItem qemuMigrationParamsFlagMap[] = =3D { - {QEMU_MIGRATION_FLAG_REQUIRED, - VIR_MIGRATE_RDMA_PIN_ALL, - QEMU_MIGRATION_CAP_RDMA_PIN_ALL, - QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, - - {QEMU_MIGRATION_FLAG_REQUIRED, - VIR_MIGRATE_AUTO_CONVERGE, - QEMU_MIGRATION_CAP_AUTO_CONVERGE, - QEMU_MIGRATION_SOURCE}, + {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, + .flag =3D VIR_MIGRATE_RDMA_PIN_ALL, + .cap =3D QEMU_MIGRATION_CAP_RDMA_PIN_ALL, + .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, =20 - {QEMU_MIGRATION_FLAG_REQUIRED, - VIR_MIGRATE_POSTCOPY, - QEMU_MIGRATION_CAP_POSTCOPY, - QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, + {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, + .flag =3D VIR_MIGRATE_AUTO_CONVERGE, + .cap =3D QEMU_MIGRATION_CAP_AUTO_CONVERGE, + .party =3D QEMU_MIGRATION_SOURCE}, =20 - {QEMU_MIGRATION_FLAG_REQUIRED, - VIR_MIGRATE_PARALLEL, - QEMU_MIGRATION_CAP_MULTIFD, - QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, + {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, + .flag =3D VIR_MIGRATE_POSTCOPY, + .cap =3D QEMU_MIGRATION_CAP_POSTCOPY, + .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, =20 - {QEMU_MIGRATION_FLAG_FORBIDDEN, - VIR_MIGRATE_TUNNELLED, - QEMU_MIGRATION_CAP_RETURN_PATH, - QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, + {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, + .flag =3D VIR_MIGRATE_PARALLEL, + .cap =3D QEMU_MIGRATION_CAP_MULTIFD, + .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, =20 - {QEMU_MIGRATION_FLAG_REQUIRED, - VIR_MIGRATE_ZEROCOPY, - QEMU_MIGRATION_CAP_ZERO_COPY_SEND, - QEMU_MIGRATION_SOURCE}, + {.match =3D QEMU_MIGRATION_FLAG_FORBIDDEN, + .flag =3D VIR_MIGRATE_TUNNELLED, + .cap =3D QEMU_MIGRATION_CAP_RETURN_PATH, + .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, + + {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, + .flag =3D VIR_MIGRATE_ZEROCOPY, + .cap =3D QEMU_MIGRATION_CAP_ZERO_COPY_SEND, + .party =3D QEMU_MIGRATION_SOURCE}, }; =20 /* Translation from VIR_MIGRATE_PARAM_* typed parameters to --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Thu May 16 01:12:40 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1704735148297261.0868201104721; Mon, 8 Jan 2024 09:32:28 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 2EFD41AD6; Mon, 8 Jan 2024 12:32:27 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 5B1801B7B; Mon, 8 Jan 2024 12:08:52 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id C63F51A5A; Mon, 8 Jan 2024 12:08:27 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 808E81A18 for ; Mon, 8 Jan 2024 12:06:51 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-447-y-Bi8-ZVMn-59edVYutZTg-1; Mon, 08 Jan 2024 12:06:48 -0500 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 80A708370E3 for ; Mon, 8 Jan 2024 17:06:48 +0000 (UTC) Received: from orkuz (unknown [10.45.226.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 44734492BE6 for ; Mon, 8 Jan 2024 17:06:48 +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=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: y-Bi8-ZVMn-59edVYutZTg-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 3/6] qemu: Rename remoteCaps parameter in qemuMigrationParamsCheck Date: Mon, 8 Jan 2024 18:06:39 +0100 Message-ID: <79ba68969181a34f764c2f92c01eaf0d3877ac41.1704733372.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: TBNBFCDQLECWB6GOQNEXSANDE73H4LAS X-Message-ID-Hash: TBNBFCDQLECWB6GOQNEXSANDE73H4LAS 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1704735149910100001 The migration cookie contains two bitmaps of migration capabilities: supported and automatic. qemuMigrationParamsCheck expects the letter so lets make it more obvious by renaming the parameter as remoteAuto. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_migration_params.c | 6 +++--- src/qemu/qemu_migration_params.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index b02a8af8d5..f441c59d67 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1290,7 +1290,7 @@ int qemuMigrationParamsCheck(virDomainObj *vm, int asyncJob, qemuMigrationParams *migParams, - virBitmap *remoteCaps) + virBitmap *remoteAuto) { qemuDomainJobPrivate *jobPriv =3D vm->job->privateData; qemuMigrationCapability cap; @@ -1323,8 +1323,8 @@ qemuMigrationParamsCheck(virDomainObj *vm, if (qemuMigrationParamsAlwaysOn[i].party !=3D party) { bool remote =3D false; =20 - if (remoteCaps) - ignore_value(virBitmapGetBit(remoteCaps, cap, &remote)= ); + if (remoteAuto) + ignore_value(virBitmapGetBit(remoteAuto, cap, &remote)= ); =20 if (!remote) { VIR_DEBUG("Not enabling migration capability '%s'; it = is " diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 5857673227..44f5c2a882 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -142,7 +142,7 @@ int qemuMigrationParamsCheck(virDomainObj *vm, int asyncJob, qemuMigrationParams *migParams, - virBitmap *remoteCaps); + virBitmap *remoteAuto); =20 void qemuMigrationParamsReset(virDomainObj *vm, --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Thu May 16 01:12:40 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1704735259183498.12353567254047; Mon, 8 Jan 2024 09:34:19 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 23F121B91; Mon, 8 Jan 2024 12:34:18 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 05F6C1B82; Mon, 8 Jan 2024 12:09:00 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id B20E61B7B; Mon, 8 Jan 2024 12:08:47 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 B15E318D8 for ; Mon, 8 Jan 2024 12:06:51 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-251-jE_wA2XKPNW0tzq9CIUWRg-1; Mon, 08 Jan 2024 12:06:49 -0500 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7A09388D12C for ; Mon, 8 Jan 2024 17:06:49 +0000 (UTC) Received: from orkuz (unknown [10.45.226.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 37FE8492BE6 for ; Mon, 8 Jan 2024 17:06:49 +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=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: jE_wA2XKPNW0tzq9CIUWRg-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 4/6] qemu: Add support for optional migration capabilities Date: Mon, 8 Jan 2024 18:06:40 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: WA32YXJWR2AUFO6TJLDZNXE7WO6ADMYL X-Message-ID-Hash: WA32YXJWR2AUFO6TJLDZNXE7WO6ADMYL 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1704735260414100001 We enable various migration capabilities according to the flags passed to a migration API. Missing support for such capabilities results in an error because they are required by the corresponding flag. This patch adds support for additional optional capability we may want to enable for a given API flag in case it is supported. This is useful for capabilities which are not critical for the flags to be supported, but they can make things work better in some way. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_migration.c | 8 ++--- src/qemu/qemu_migration_params.c | 57 +++++++++++++++++++++++++++++--- src/qemu/qemu_migration_params.h | 1 + 3 files changed, 57 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 3ba0aa502b..5504119079 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3172,8 +3172,8 @@ qemuMigrationDstPrepareActive(virQEMUDriver *driver, if (qemuMigrationDstPrepareAnyBlockDirtyBitmaps(vm, mig, migParams, fl= ags) < 0) goto error; =20 - if (qemuMigrationParamsCheck(vm, VIR_ASYNC_JOB_MIGRATION_IN, - migParams, mig->caps->automatic) < 0) + if (qemuMigrationParamsCheck(vm, VIR_ASYNC_JOB_MIGRATION_IN, migParams, + mig->caps->supported, mig->caps->automati= c) < 0) goto error; =20 /* Save original migration parameters */ @@ -4831,8 +4831,8 @@ qemuMigrationSrcRun(virQEMUDriver *driver, qemuMigrationSrcRunPrepareBlockDirtyBitmaps(vm, mig, migParams, fl= ags) < 0) goto error; =20 - if (qemuMigrationParamsCheck(vm, VIR_ASYNC_JOB_MIGRATION_OUT, - migParams, mig->caps->automatic) < 0) + if (qemuMigrationParamsCheck(vm, VIR_ASYNC_JOB_MIGRATION_OUT, migParam= s, + mig->caps->supported, mig->caps->automati= c) < 0) goto error; =20 /* Save original migration parameters */ diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index f441c59d67..133f1f762d 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -64,6 +64,11 @@ struct _qemuMigrationParamValue { struct _qemuMigrationParams { unsigned long long compMethods; /* bit-wise OR of qemuMigrationCompres= sMethod */ virBitmap *caps; + /* Optional capabilities are enabled only if supported by QEMU */ + virBitmap *optional; + /* A capability present on both optional and remoteOptional bitmaps are + * enabled only if they are supported by both sides of migration. */ + virBitmap *remoteOptional; qemuMigrationParamValue params[QEMU_MIGRATION_PARAM_LAST]; virJSONValue *blockDirtyBitmapMapping; }; @@ -141,6 +146,10 @@ struct _qemuMigrationParamsFlagMapItem { virDomainMigrateFlags flag; /* Migration capability to be enabled or disabled based on the flag. */ qemuMigrationCapability cap; + /* An optional capability to set in addition to @cap in case it is + * supported. Depending on @part either one or both sides of migration + * has to support the optional capability to be enabled. */ + qemuMigrationCapability optional; /* Bit-wise OR of qemuMigrationParty. Determines whether the capabilit= y has * to be enabled on the source, on the destination, or on both sides of * migration. */ @@ -334,6 +343,8 @@ qemuMigrationParamsNew(void) params =3D g_new0(qemuMigrationParams, 1); =20 params->caps =3D virBitmapNew(QEMU_MIGRATION_CAP_LAST); + params->optional =3D virBitmapNew(QEMU_MIGRATION_CAP_LAST); + params->remoteOptional =3D virBitmapNew(QEMU_MIGRATION_CAP_LAST); =20 return g_steal_pointer(¶ms); } @@ -353,6 +364,8 @@ qemuMigrationParamsFree(qemuMigrationParams *migParams) } =20 virBitmapFree(migParams->caps); + virBitmapFree(migParams->optional); + virBitmapFree(migParams->remoteOptional); virJSONValueFree(migParams->blockDirtyBitmapMapping); g_free(migParams); } @@ -698,6 +711,13 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr para= ms, VIR_DEBUG("Enabling migration capability '%s'", qemuMigrationCapabilityTypeToString(item->cap)); ignore_value(virBitmapSetBit(migParams->caps, item->cap)); + + if (item->optional) { + qemuMigrationCapability opt =3D item->optional; + ignore_value(virBitmapSetBit(migParams->optional, opt)); + if (item->party !=3D party) + ignore_value(virBitmapSetBit(migParams->remoteOptional= , opt)); + } } } =20 @@ -1290,6 +1310,7 @@ int qemuMigrationParamsCheck(virDomainObj *vm, int asyncJob, qemuMigrationParams *migParams, + virBitmap *remoteSupported, virBitmap *remoteAuto) { qemuDomainJobPrivate *jobPriv =3D vm->job->privateData; @@ -1303,16 +1324,42 @@ qemuMigrationParamsCheck(virDomainObj *vm, party =3D QEMU_MIGRATION_DESTINATION; =20 for (cap =3D 0; cap < QEMU_MIGRATION_CAP_LAST; cap++) { - bool state =3D false; - - ignore_value(virBitmapGetBit(migParams->caps, cap, &state)); - - if (state && !qemuMigrationCapsGet(vm, cap)) { + bool enable =3D false; + bool optional =3D false; + bool remoteOpt =3D false; + bool remote =3D false; + bool qemu =3D qemuMigrationCapsGet(vm, cap); + + ignore_value(virBitmapGetBit(migParams->caps, cap, &enable)); + ignore_value(virBitmapGetBit(migParams->optional, cap, &optional)); + ignore_value(virBitmapGetBit(migParams->remoteOptional, cap, &remo= teOpt)); + ignore_value(virBitmapGetBit(remoteSupported, cap, &remote)); + + if (enable && !qemu) { virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, _("Migration option '%1$s' is not supported by = QEMU binary"), qemuMigrationCapabilityTypeToString(cap)); return -1; } + + if (optional) { + if (!qemu) { + VIR_DEBUG("Optional migration capability '%s' not supporte= d by QEMU", + qemuMigrationCapabilityTypeToString(cap)); + optional =3D false; + } else if (remoteOpt && ! remote) { + VIR_DEBUG("Optional migration capability '%s' not supporte= d " + "by the other side of migration", + qemuMigrationCapabilityTypeToString(cap)); + optional =3D false; + } + + if (optional) { + VIR_DEBUG("Enabling optional migration capability '%s'", + qemuMigrationCapabilityTypeToString(cap)); + ignore_value(virBitmapSetBit(migParams->caps, cap)); + } + } } =20 for (i =3D 0; i < G_N_ELEMENTS(qemuMigrationParamsAlwaysOn); i++) { diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 44f5c2a882..115d7bc597 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -142,6 +142,7 @@ int qemuMigrationParamsCheck(virDomainObj *vm, int asyncJob, qemuMigrationParams *migParams, + virBitmap *remoteSupported, virBitmap *remoteAuto); =20 void --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Thu May 16 01:12:40 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1704735380003675.7908098268352; Mon, 8 Jan 2024 09:36:20 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id E571317DD; Mon, 8 Jan 2024 12:36:18 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 496731B8C; Mon, 8 Jan 2024 12:09:15 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 7B65C1B64; Mon, 8 Jan 2024 12:09:04 -0500 (EST) 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 745AB1B86 for ; Mon, 8 Jan 2024 12:06:53 -0500 (EST) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-270-TO4kiWOeOF-TLPCap8L2nA-1; Mon, 08 Jan 2024 12:06:50 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 842681C294A5 for ; Mon, 8 Jan 2024 17:06:50 +0000 (UTC) Received: from orkuz (unknown [10.45.226.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 472801121306 for ; Mon, 8 Jan 2024 17:06:50 +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=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: TO4kiWOeOF-TLPCap8L2nA-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 5/6] qemu: Enable postcopy-preempt migration capability Date: Mon, 8 Jan 2024 18:06:41 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: AI7OQLPPYYAIUBDYGH4XNTHKAL6NG3NN X-Message-ID-Hash: AI7OQLPPYYAIUBDYGH4XNTHKAL6NG3NN 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1704735380965100001 During post-copy migration (once it actually switches to post-copy mode) dirty memory pages are continued to be migrated iteratively, while the destination can explicitly request a specific page to be migrated before the iterative process gets to it (which happens when a guest wants to read a page that was not migrated yet). Without the postcopy-preempt capability enabled such pages need to wait until all other pages already queued are transferred. Enabling this capability will instruct the hypervisor to create a separate migration channel for explicitly requested pages so that they can preempt the queue. This is enabled for all post-copy migration as long as the capability is supported on both sides of migration. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_migration.c | 11 +++++++---- src/qemu/qemu_migration_params.c | 2 ++ src/qemu/qemu_migration_params.h | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 5504119079..25dc16a9e9 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -5203,17 +5203,20 @@ qemuMigrationSrcPerformNative(virQEMUDriver *driver, return -1; } =20 - if (flags & VIR_MIGRATE_PARALLEL) + /* multi-fd and postcopy-preempt require QEMU to connect to the + * destination itself */ + if (flags & (VIR_MIGRATE_PARALLEL | VIR_MIGRATE_POSTCOPY)) spec.destType =3D MIGRATION_DEST_SOCKET; else spec.destType =3D MIGRATION_DEST_CONNECT_SOCKET; =20 spec.dest.socket.path =3D uribits->path; } else { - /* RDMA and multi-fd migration requires QEMU to connect to the des= tination - * itself. + /* RDMA, multi-fd, and postcopy-preempt migration require QEMU to + * connect to the destination itself. */ - if (STREQ(uribits->scheme, "rdma") || (flags & VIR_MIGRATE_PARALLE= L)) + if (STREQ(uribits->scheme, "rdma") || + flags & (VIR_MIGRATE_PARALLEL | VIR_MIGRATE_POSTCOPY)) spec.destType =3D MIGRATION_DEST_HOST; else spec.destType =3D MIGRATION_DEST_CONNECT_HOST; diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 133f1f762d..9a399c7162 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -104,6 +104,7 @@ VIR_ENUM_IMPL(qemuMigrationCapability, "dirty-bitmaps", "return-path", "zero-copy-send", + "postcopy-preempt", ); =20 =20 @@ -197,6 +198,7 @@ static const qemuMigrationParamsFlagMapItem qemuMigrati= onParamsFlagMap[] =3D { {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, .flag =3D VIR_MIGRATE_POSTCOPY, .cap =3D QEMU_MIGRATION_CAP_POSTCOPY, + .optional =3D QEMU_MIGRATION_CAP_POSTCOPY_PREEMPT, .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, =20 {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 115d7bc597..91bc6792cd 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -40,6 +40,7 @@ typedef enum { QEMU_MIGRATION_CAP_BLOCK_DIRTY_BITMAPS, QEMU_MIGRATION_CAP_RETURN_PATH, QEMU_MIGRATION_CAP_ZERO_COPY_SEND, + QEMU_MIGRATION_CAP_POSTCOPY_PREEMPT, =20 QEMU_MIGRATION_CAP_LAST } qemuMigrationCapability; --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Thu May 16 01:12:40 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1704735443771403.5841625376602; Mon, 8 Jan 2024 09:37:23 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id B23F61B73; Mon, 8 Jan 2024 12:37:22 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id C64441B90; Mon, 8 Jan 2024 12:09:28 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id E3ED91B90; Mon, 8 Jan 2024 12:09:18 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 A947C1AC6 for ; Mon, 8 Jan 2024 12:06:53 -0500 (EST) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-681-wlTb9Kp3Oduz07DEJOMMRw-1; Mon, 08 Jan 2024 12:06:51 -0500 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 76BC63C2E0A9 for ; Mon, 8 Jan 2024 17:06:51 +0000 (UTC) Received: from orkuz (unknown [10.45.226.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3A3EA492BE6 for ; Mon, 8 Jan 2024 17:06:51 +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=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: wlTb9Kp3Oduz07DEJOMMRw-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 6/6] NEWS: Mention postcopy-preempt migration capability Date: Mon, 8 Jan 2024 18:06:42 +0100 Message-ID: <693808ce052ec0dc70958d12448dfe3a544d31d3.1704733372.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: Q2PZVN5CHPCT74LCHVY5FX2CUN2CKFKU X-Message-ID-Hash: Q2PZVN5CHPCT74LCHVY5FX2CUN2CKFKU 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1704735445337100001 Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- NEWS.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index dc40602c72..9675f12cb4 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -17,6 +17,14 @@ v10.0.0 (unreleased) =20 * **New features** =20 + * qemu: Enable postcopy-preempt migration capability + + Post-copy migrations are now started with ``postcopy-preempt`` + capability enabled as long as it is supported by both sides of migrati= on. + This should enable faster migration of memory pages that the destinati= on + tries to read before they are migrated from the source. + + * **Improvements** =20 * **Bug fixes** --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org