Hi,

After some discussions with Alon, we came to the conclusion that in
order to revive seamless migration we need to solve the following race
conditions :

race 1: target starts before the client managed to connect to it.
possible solutions:
1) qxl savevm will hold (with timeout) migration till client is
connected to target. Will it be acceptable by qemu? (Gerd?)
However, qxl is not necessarily installed...
2) spice will try to connect the target immediately when it receives
client_migrate_info from libvirt, and will wait till it succeeds (and by
this will hold migration. (libvirt - can we count on executing
client_migrate_info just before migration starts and not a long time
before?)

One pretty fundamental issue here is that qemu doesn't accept any new connections while the migration is running. IIRC this applies only to the final stage where all device state is migrated. But that still pretty much implies that (1) isn't going to work.

I've played with a approach simliar to (2) long ago. Actually did it by registering a "live" migration handler. Didn't work that well too. spice client will stay connected to both source and target for a long time, and the spice code base simply couldn't handle that very well. One problem was a timeout somewhere which was *way* to short. Second was that some stuff such as new connects are blocked in that "migration" state. Doesn't hurt much if that lasts a second or two, but for a few minutes it isn't acceptable. Maybe there was more which I don't remember.

HTH,
  Gerd

_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to