From nobody Wed May 15 03:22:35 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 1704470179171885.535661010005; Fri, 5 Jan 2024 07:56:19 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 190C2199C; Fri, 5 Jan 2024 10:56:18 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id DAE8E19FB; Fri, 5 Jan 2024 10:53:58 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 3A5F817C2; Fri, 5 Jan 2024 10:53:49 -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 B5EFC18C6 for ; Fri, 5 Jan 2024 10:53:48 -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-627-26oZjjJjN7CTFK6sJCibuQ-1; Fri, 05 Jan 2024 10:53:47 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (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 D1E31101A555 for ; Fri, 5 Jan 2024 15:53:46 +0000 (UTC) Received: from orkuz (unknown [10.45.224.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 95B0F3C27 for ; Fri, 5 Jan 2024 15:53: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: 26oZjjJjN7CTFK6sJCibuQ-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 1/3] Introduce VIR_MIGRATE_POSTCOPY_PREEMPT flag Date: Fri, 5 Jan 2024 16:53:37 +0100 Message-ID: <08ad1c9eb776127f68719cc59867e26112742d1d.1704469030.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: AXSJG62GDCCJNQRKCMTOEAXT3UL4K5SX X-Message-ID-Hash: AXSJG62GDCCJNQRKCMTOEAXT3UL4K5SX 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: 1704470179524100001 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 this flag explicitly requested pages need to wait until all other pages already queued are transferred. Enabling this flag will instruct the hypervisor to create a separate migration channel for explicitly requested pages so that they can preempt the queue. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- include/libvirt/libvirt-domain.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 30cce85b29..ee23ae97a5 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -1100,6 +1100,14 @@ typedef enum { * Since: 8.5.0 */ VIR_MIGRATE_ZEROCOPY =3D (1 << 20), + + /* Allow post-copy requests to preempt normal migration stream. This w= ay + * page faults on the destination hosts caused by accessing a memory p= age + * that was not migrated yet should be handled faster. + * + * Since: 10.0.0 + */ + VIR_MIGRATE_POSTCOPY_PREEMPT =3D (1 << 21), } virDomainMigrateFlags; =20 =20 --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Wed May 15 03:22:35 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 1704470349943245.73863850295413; Fri, 5 Jan 2024 07:59:09 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id BEF9E1862; Fri, 5 Jan 2024 10:59:08 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 6FFE71A3F; Fri, 5 Jan 2024 10:54:29 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 8C25E19A9; Fri, 5 Jan 2024 10:54:16 -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 D5A821994 for ; Fri, 5 Jan 2024 10:53:54 -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-445-QLhCjvsQMUSPV_IY-6v8cg-1; Fri, 05 Jan 2024 10:53:48 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (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 DEC8185A589 for ; Fri, 5 Jan 2024 15:53:47 +0000 (UTC) Received: from orkuz (unknown [10.45.224.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id A2D591C060B2 for ; Fri, 5 Jan 2024 15:53: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.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: QLhCjvsQMUSPV_IY-6v8cg-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 2/3] virsh migrate: Add --postcopy-preempt option Date: Fri, 5 Jan 2024 16:53:38 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: LKVHYU4LUJKIAQR44K3G5VE5VHIC2ZRM X-Message-ID-Hash: LKVHYU4LUJKIAQR44K3G5VE5VHIC2ZRM 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: 1704470350548100001 This new option will enable VIR_MIGRATE_POSTCOPY_PREEMPT flag. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- docs/manpages/virsh.rst | 9 ++++++--- tools/virsh-domain.c | 6 ++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index ed1027e133..4d55665ac1 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -3373,9 +3373,9 @@ migrate [--persistent] [--undefinesource] [--suspend] [--copy-storage-all] [--copy-storage-inc] [--change-protection] [--unsafe] [--verbose] [--rdma-pin-all] [--abort-on-error] [--postcopy] - [--postcopy-after-precopy] [--postcopy-resume] [--zerocopy] - domain desturi [migrateuri] [graphicsuri] [listen-address] [dname] - [--timeout seconds [--timeout-suspend | --timeout-postcopy]] + [--postcopy-after-precopy] [--postcopy-resume] [--postcopy-preempt] + [--zerocopy] domain desturi [migrateuri] [graphicsuri] [listen-addre= ss] + [dname] [--timeout seconds [--timeout-suspend | --timeout-postcopy]] [--xml file] [--migrate-disks disk-list] [--disks-port port] [--compressed] [--comp-methods method-list] [--comp-mt-level] [--comp-mt-threads] [--comp-mt-dthreads] @@ -3428,6 +3428,9 @@ Once migration is running, the user may switch to pos= t-copy using the ``migrate-postcopy`` command sent from another virsh instance or use *--postcopy-after-precopy* along with *--postcopy* to let libvirt automatically switch to post-copy after the first pass of pre-copy is fini= shed. +The *--postcopy-preempt* option can be used to speed up handling page faul= ts on +the destination host caused by accessing a memory page that was not migrat= ed yet +by letting such pages preempt migration of other memory pages. The maximum bandwidth consumed during the post-copy phase may be limited u= sing *--postcopy-bandwidth*. The maximum bandwidth consumed during the pre-copy= phase may be limited using *--bandwidth*. In case connection between the hosts b= reaks diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 58d5a4ab57..25b41cab22 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -11014,6 +11014,10 @@ static const vshCmdOptDef opts_migrate[] =3D { .type =3D VSH_OT_BOOL, .help =3D N_("resume failed post-copy migration") }, + {.name =3D "postcopy-preempt", + .type =3D VSH_OT_BOOL, + .help =3D N_("let post-copy requests preempt normal migration stream") + }, {.name =3D "zerocopy", .type =3D VSH_OT_BOOL, .help =3D N_("use zero-copy mechanism for migrating memory pages") @@ -11182,6 +11186,7 @@ doMigrate(void *opaque) { "abort-on-error", VIR_MIGRATE_ABORT_ON_ERROR }, { "postcopy", VIR_MIGRATE_POSTCOPY }, { "postcopy-resume", VIR_MIGRATE_POSTCOPY_RESUME }, + { "postcopy-preempt", VIR_MIGRATE_POSTCOPY_PREEMPT }, { "zerocopy", VIR_MIGRATE_ZEROCOPY }, { "tls", VIR_MIGRATE_TLS }, { "parallel", VIR_MIGRATE_PARALLEL }, @@ -11530,6 +11535,7 @@ cmdMigrate(vshControl *ctl, const vshCmd *cmd) VSH_EXCLUSIVE_OPTIONS("copy-storage-all", "copy-storage-inc"); VSH_REQUIRE_OPTION("postcopy-after-precopy", "postcopy"); VSH_REQUIRE_OPTION("postcopy-resume", "postcopy"); + VSH_REQUIRE_OPTION("postcopy-preempt", "postcopy"); VSH_REQUIRE_OPTION("timeout-postcopy", "postcopy"); VSH_REQUIRE_OPTION("persistent-xml", "persistent"); VSH_REQUIRE_OPTION("tls-destination", "tls"); --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Wed May 15 03:22:35 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 1704470264953659.8499352794947; Fri, 5 Jan 2024 07:57:44 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id D8D951A6D; Fri, 5 Jan 2024 10:57:43 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 28E111976; Fri, 5 Jan 2024 10:54:09 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 4C51F18CA; Fri, 5 Jan 2024 10:53:52 -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 E187E18B8 for ; Fri, 5 Jan 2024 10:53:50 -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-520-ApvjCQANOoapPNIAHXFdfw-1; Fri, 05 Jan 2024 10:53:49 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (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 D0E8329ABA09 for ; Fri, 5 Jan 2024 15:53:48 +0000 (UTC) Received: from orkuz (unknown [10.45.224.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 94F902166B31 for ; Fri, 5 Jan 2024 15:53: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_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: ApvjCQANOoapPNIAHXFdfw-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [libvirt PATCH 3/3] qemu_migration: Implement VIR_MIGRATE_POSTCOPY_PREEMPT Date: Fri, 5 Jan 2024 16:53:39 +0100 Message-ID: <04574e867957c8845e54bb2661ce4059a9ed7ba4.1704469030.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: MYPSJNAM3CGQ7A4LR5U6ORDDFY46US3E X-Message-ID-Hash: MYPSJNAM3CGQ7A4LR5U6ORDDFY46US3E 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: 1704470265884100001 Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_migration.c | 21 ++++++++++++++++++--- src/qemu/qemu_migration.h | 1 + src/qemu/qemu_migration_params.c | 6 ++++++ src/qemu/qemu_migration_params.h | 1 + 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 3ba0aa502b..09445354a9 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2611,6 +2611,13 @@ qemuMigrationSrcBeginPhase(virQEMUDriver *driver, return NULL; } =20 + if (flags & VIR_MIGRATE_POSTCOPY_PREEMPT && + !(flags & VIR_MIGRATE_POSTCOPY)) { + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", + _("post-copy preemption can only be enabled for pos= t-copy migration")); + return NULL; + } + if (flags & VIR_MIGRATE_OFFLINE) { if (flags & (VIR_MIGRATE_NON_SHARED_DISK | VIR_MIGRATE_NON_SHARED_INC)) { @@ -3605,6 +3612,13 @@ qemuMigrationDstPrepareAny(virQEMUDriver *driver, return -1; } =20 + if (flags & VIR_MIGRATE_POSTCOPY_PREEMPT && + !(flags & VIR_MIGRATE_POSTCOPY)) { + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", + _("post-copy preemption can only be enabled for pos= t-copy migration")); + return -1; + } + if (cfg->migrateTLSForce && !(flags & VIR_MIGRATE_TUNNELLED) && !(flags & VIR_MIGRATE_TLS)) { @@ -5210,10 +5224,11 @@ qemuMigrationSrcPerformNative(virQEMUDriver *driver, =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 requires 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_PREEMPT)) spec.destType =3D MIGRATION_DEST_HOST; else spec.destType =3D MIGRATION_DEST_CONNECT_HOST; diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h index ed62fd4a91..27fb783359 100644 --- a/src/qemu/qemu_migration.h +++ b/src/qemu/qemu_migration.h @@ -62,6 +62,7 @@ VIR_MIGRATE_NON_SHARED_SYNCHRONOUS_WRITES | \ VIR_MIGRATE_POSTCOPY_RESUME | \ VIR_MIGRATE_ZEROCOPY | \ + VIR_MIGRATE_POSTCOPY_PREEMPT | \ 0) =20 /* All supported migration parameters and their types. */ diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 79fe6e97c8..35eafd8f0d 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -99,6 +99,7 @@ VIR_ENUM_IMPL(qemuMigrationCapability, "dirty-bitmaps", "return-path", "zero-copy-send", + "postcopy-preempt", ); =20 =20 @@ -194,6 +195,11 @@ static const qemuMigrationParamsFlagMapItem qemuMigrat= ionParamsFlagMap[] =3D { VIR_MIGRATE_ZEROCOPY, QEMU_MIGRATION_CAP_ZERO_COPY_SEND, QEMU_MIGRATION_SOURCE}, + + {QEMU_MIGRATION_FLAG_REQUIRED, + VIR_MIGRATE_POSTCOPY_PREEMPT, + QEMU_MIGRATION_CAP_POSTCOPY_PREEMPT, + QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, }; =20 /* Translation from VIR_MIGRATE_PARAM_* typed parameters to diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 5857673227..74f1680e9e 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