[libvirt PATCH v2 66/81] qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for Prepare phase

Peter Krempa pkrempa at redhat.com
Mon Jun 6 13:23:11 UTC 2022


On Fri, Jun 03, 2022 at 14:27:55 +0200, Jiri Denemark wrote:
> On Wed, Jun 01, 2022 at 14:50:06 +0200, Jiri Denemark wrote:
> > The QEMU process is already running, all we need to do is to call
> > migrate-recover QMP command. Except for some checks and cookie handling,
> > of course.
> > 
> > Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> > Reviewed-by: Peter Krempa <pkrempa at redhat.com>
> > Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> > 
> > Notes:
> >     Version 2:
> >     - no change
> > 
> >  src/qemu/qemu_migration.c | 99 +++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 99 insertions(+)
> 
> The following patch needs to be squashed in to make sure the
> automatically allocated port is properly released at the end of resume.
> 
> Jirka
> 
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index dbebd215b4..22a80d8430 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -3485,6 +3485,7 @@ qemuMigrationDstPrepareResume(virQEMUDriver *driver,
>                                const char *origname,
>                                const char *protocol,
>                                unsigned short port,
> +                              bool autoPort,
>                                const char *listenAddress,
>                                unsigned long flags)
>  {
> @@ -3555,6 +3556,9 @@ qemuMigrationDstPrepareResume(virQEMUDriver *driver,
>      virCloseCallbacksSet(driver->closeCallbacks, vm, conn,
>                           qemuMigrationAnyConnectionClosed);
> 
> +    if (autoPort)
> +        priv->migrationPort = port;
> +
>   cleanup:
>      qemuProcessIncomingDefFree(incoming);
>      if (ret < 0)
> @@ -3633,7 +3637,8 @@ qemuMigrationDstPrepareAny(virQEMUDriver *driver,
>      if (flags & VIR_MIGRATE_POSTCOPY_RESUME) {
>          return qemuMigrationDstPrepareResume(driver, dconn, cookiein, cookieinlen,
>                                               cookieout, cookieoutlen,
> -                                             *def, origname, protocol, port,
> +                                             *def, origname, protocol,
> +                                             port, autoPort,
>                                               listenAddress, flags);



Reviewed-by: Peter Krempa <pkrempa at redhat.com>


More information about the libvir-list mailing list