Hi,

>> Is there a complete list of the session state we need to save?
>>
> 
> There is still code in spice-server for the old seamless migration,
> someone could go through that and use that as an initial list of
> session state we need to save.

That doesn't help much as it is _way_ too old.  Predates surfaces & wan
support which needs additional state.  Predates smardcard and usb too.
Also agent didn't have bulky stuff (cut+paste) back then, so chances are
not bad that just not saving any agent state works in 99.99% of the
cases just fine, so I'm not sure this is handled at all.

Also some bits are are not needed any more.  Transfering the ticket has
been offloaded that to management.  QXL device handles some bits which
used to be transfered with the spice-server state (mouse pointer shape).

> Agreed, so for starts someone needs to make a list of all
> session state we need to save.

Here is what I'm aware of:

  * session id (needed when sending state via vmstate, I think we
    don't need it when sending state via spice client).
  * surfaces known to the client (can also be negotiated between
    client and target directly).
  * surface state (lossy vs. lossless quality if wan support is
    enabled).  Dunno whenever the client knows this.
  * glz compression dictionary state (not sure what exactly is
    transfered here and why).
  * vmchannel state (agent, smartcard, usb).

agent is tricky because spice-server needs to maintain state there
because of the message multiplexing.  A fixed number of fields and maybe
a VD_AGENT_MAX_DATA_SIZE-sized buffer could work for that though.

smartcard + usb: This is just pass-through for spice-server, right?
There shouldn't be anything to save, except maybe for stuff buffered in
spice-server.  Is there any?  I mean really in spice-server, migrating
spice-qemu-char.c buffers via vmstate is not a big issue.

cheers,
  Gerd

Reply via email to