On Tue, Apr 15, 2014 at 09:09:55AM -0600, Chris Friesen wrote: > On 04/15/2014 02:28 AM, Daniel P. Berrange wrote: > >On Mon, Apr 14, 2014 at 05:50:07PM -0600, Chris Friesen wrote: > >>Hi, > >> > >>I've been digging through the libvirt code and something that struck > >>me was that it appears that when using qemu libvirt will migrate the > >>instance with autostart disabled, then sit on the source host > >>periodically polling for migration completion, then once the host > >>detects that migration is completed it will tell the destination to > >>start up the VM. > >> > >>Why don't we let the destination autostart the VM once migration is > >>complete? > > > >Libvirt has to have synchronization point on the target machine, so > >that we can acquire any disk leases associated with the VM before > >the CPUs are started. > > Where does that happen? I'm looking at libvirt/qemu, specifically > this code path on the target: > > > remoteDispatchDomainMigrateFinish3ParamsHelper > remoteDispatchDomainMigrateFinish3Params > virDomainMigrateFinish3Params > qemuDomainMigrateFinish3Params > qemuMigrationFinish > qemuProcessStartCPUs > qemuMonitorStartCPUs In the StartCPUs method we call virDomainLockProcessResume We also need the sunchronization point to update our own internal state about active jobs. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list