[Spice-devel] changing the timing of spice client linking in migration (RHBZ #725009)

Yonit Halperin yhalperi at redhat.com
Mon Sep 5 02:29:02 PDT 2011


On 08/26/2011 10:56 AM, Alon Levy wrote:
> On Thu, Aug 25, 2011 at 02:20:13PM +0300, Yonit Halperin wrote:
>> On 08/25/2011 02:15 PM, Daniel P. Berrange wrote:
>>> On Thu, Aug 25, 2011 at 02:13:01PM +0300, Yonit Halperin wrote:
>>>> On 08/25/2011 01:53 PM, Gerd Hoffmann wrote:
>>>>> 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.
>>>>
>>>> If we can't connect to the target during migration, this means the
>>>> "not seamless" solution is problematic as well, and we may need ==>
>>>> a libvirt change<== :
>>>> We need to connect to the target before migration starts. We can
>>>> either do it upon client_migrate_info, under the assumption that the
>>>> target is already up and that it is called just before migration.
>>>> Or otherwise, we need to introduce a new command from libvirt, just
>>>> before migration, with the same assumptions.
>>>
>>> Yes, the target QEMU is neccessarily up by the time client_migrate_info
>>> is run, because we need to know the SPICE port number for the running
>>> target QEMU. We run client_migrate_info, immediately before running
>>> migrate monitor command.
>>>
>>> If you're wanting to ensure the client connects to target QEMU before
>>> migrate starts, then this implies that the libspice-server.so would
>>> block in client_migrate_info, until it knows the client has succesfully
>>> connected to the target ?
>>>
>> Yes, but with a reasonable timeout. But this is for seamless. And
>> I'm not sure we want the seamless solution for 6.3
>
> I thought it is for both seamless and the 'connect-on-migration-start' approach
> you are suggesting here.
>
Daniel, can libvirt add an async monitor command equivalent to 
client_migrate_info, so that spice will inform libvirt when to continue 
to migrate command (after the client connects to the target or a 
timeout) without the need to hold the iothread?

Cheers,
Yonit
>>
>> Thanks,
>> Yonit.
>>
>>> Daniel
>>



More information about the Spice-devel mailing list