[libvirt] [PATCH v3 02/14] Add public APIs for post-copy migration

Pavel Hrdina phrdina at redhat.com
Fri Mar 18 09:51:55 UTC 2016


On Wed, Mar 02, 2016 at 12:42:23PM +0100, Jiri Denemark wrote:
> From: Cristian Klein <cristiklein at gmail.com>
> 
> To use post-copy one has to start the migration with
> VIR_MIGRATE_POSTCOPY flag and, while migration is in progress, call
> virDomainMigrateStartPostCopy() to switch from pre-copy to post-copy.
> 
> Signed-off-by: Cristian Klein <cristiklein at gmail.com>
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
> 
> Notes:
>     Version 3:
>     - VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED will only be emitted on
>       the destination host
>     
>     Version 2:
>     - POSTCOPY_AFTER_PRECOPY flag removed
> 

[...]

> @@ -9165,6 +9200,96 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
>  
>  
>  /**
> + * virDomainMigrateStartPostCopy:
> + * @domain: a domain object
> + * @flags: extra flags; not used yet, so callers should always pass 0
> + *
> + * Starts post-copy migration. This function has to be called while
> + * migration (initiated with VIR_MIGRATE_POSTCOPY flag) is in progress.
> + *
> + * Traditional post-copy migration iteratively walks through guest memory

s/post-copy/pre-copy/

> + * pages and migrates those that changed since the previous iteration. The
> + * iterative phase stops when the number of dirty pages is low enough so that
> + * the virtual CPUs can be paused, all dirty pages transferred to the
> + * destination, where the virtual CPUs are unpaused, and all this can happen
> + * within a predefined downtime period. It's clear that this process may never
> + * converge if downtime is too short and/or the guest keeps changing a lot of
> + * memory pages.
> + *

[...]

> @@ -725,4 +725,8 @@ LIBVIRT_1.2.19 {
>          virDomainRename;
>  } LIBVIRT_1.2.17;
>  
> +LIBVIRT_1.3.2 {
> +        virDomainMigrateStartPostCopy;
> +} LIBVIRT_1.2.19;
> +

There should be 1.3.3 and all other cases also uses global:, but I'm not sure
how this works :)

Pavel




More information about the libvir-list mailing list