Il 28/03/2014 12:30, Dr. David Alan Gilbert ha scritto:
> > Another reason for doing it in libvirt is that the
serialization
> > between cancellation and completion of migration ultimately is
> > controlled by libvirt's lock. Doing this in QEMU makes it harder to
> > reason about concurrency.
I think you have to be careful when you talk about 'cancellation and completion
of migration' - in that paragraph I don't think you mean the same thing
as MIG_STATE_CANCELLED and MIG_STATE_COMPLETED, I think you're talking
about the larger scale idea of completion after you take into account
that the VM might be paused after qemu has gone to MIG_STATE_COMPLETED and
libvirt might still decide it wants to give up and use the version on
the source that's still paused.
Yes, exactly. This is why I considered the possibility of adding a
"cancelled" flag within libvirt.
Libvirt always uses -S on the destination, so it's always possible to
cancel migration even after MIG_STATE_COMPLETED.
Paolo