[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