Commit Graph

8 Commits

Author SHA1 Message Date
Yonit Halperin
9c6a49c364 char_device: don't connect a migrated client if the state of the device might have changed since it was created
If reading/writing from the device have occured before migration data
has arrived, the migration data might no longer be relvant, and we
disconnect the client.
2012-08-27 09:13:08 +03:00
Yonit Halperin
99ea64ac5a char device migration: restore state at destination from migration data 2012-08-27 09:13:02 +03:00
Yonit Halperin
cb767a83fd char device migration: don't read or write from/to the device while waiting for migraion data 2012-08-27 09:13:02 +03:00
Yonit Halperin
b0264a5e37 char device migration: marshall migration data 2012-08-27 09:13:02 +03:00
Yonit Halperin
520e2cd4f4 char_device: variable token price for write buffers
When restoring migration data, we also restore data that is addressed to
the device, and that might have been originated from more than 1
message. When the write buffer that is assoicated with this data is
released, we need to free all the relevant tokens.
2012-08-27 09:13:01 +03:00
Yonit Halperin
11033ca5dc reds: add tracking for char devices
The list of attached char_devices will be used in the next patch
for notifying each instance of SpiceCharDeviceState when the vm
is started or stopped.
2012-08-27 09:04:51 +03:00
Yonit Halperin
bf91bdce5c char_device: move SpiceCharDeviceState from the header
In addition, I also removed the no longer used wakeup callback
2012-07-03 14:13:43 +03:00
Yonit Halperin
50e3af6a99 char_device: Introducing shared flow control code for char devices.
SpiceCharDeviceState manages the (1) write-to-device queue
(2) wakeup and reading from the device (3) client tokens (4)
sending messages from the device to the client/s, considering the
available tokens.
SpiceCharDeviceState can be also stopped and started. When the device
is stopped, no reading or writing is done from/to the device. Messages
addressed from the client to the device are being queued.
Later, an api for stop/start will be added to spice.h and it should
be called from qemu.

This patch does not yet remove the wakeup callback from
SpiceCharDeviceState, but once all the char devices (agent/spicevmc/smartcard)
code will switch to the new implementation, SpiceCharDeviceState
will be moved to the c file and its reference to the wakeup callback will be removed.
2012-07-03 14:13:41 +03:00