On Wed, Mar 02, 2016 at 12:42:23PM +0100, Jiri Denemark wrote: > From: Cristian Klein <cristiklein@xxxxxxxxx> > > 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@xxxxxxxxx> > Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> > --- > > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list