[Spice-devel] libspice and save/restore/migration

Alexander Larsson alexl at redhat.com
Mon May 3 07:35:03 PDT 2010


> Plan for unstable:
> 
> (1) Keep surface metadata in device memory, i.e. delay the release of
>      QXL_SURFACE_CMD_CREATE command until the surface is destroyed.
> (2) Keep the most recent QXL_CURSOR_SET command in device memory, i.e.
>      delay the release until the next one comes in.
> (3) qemu/qxl keeps track of the active surfaces and the cursor (the
>      later is required anyway for local rendering).  Because of (1)+(2)
>      it just needs to maintain pointers to the commands creating them.
> 
> savevm: qxl saves surface+cursor state (no help from libspice needed).
> 
> loadvm: qxl feeds libspice with the commands needed to restore state. 
> This could be done using either the usual get_command() interface 
> callbacks or with a new worker->loadvm_commands(cmdlist, count) call.

This sounds good to me, although I haven't really looked much at
migration in general. 

One thing it lacks is a way to extend it in the future, if we get more
state that needs preserving in the future.



More information about the Spice-devel mailing list