Amit Shah <amit.s...@redhat.com> writes: > On (Sun) 25 Nov 2012 [15:39:14], Alon Levy wrote: >> When migrating a host with with a spice agent running the mouse becomes >> non operational after the migration due to the agent state being >> inconsistent between the guest and the client if the client is using >> semi-seamless or switch host migration. >> >> After migration the target client has never received the guest_open >> initiated spice message. Virtio-serial holds this state information and >> migrates it, so replay that over the chardev post migration. Fix is not >> spice specific but spice is the only client that cares about it. > > Thanks for continuing to pursue this :) > >> rhbz #725965. >> --- >> hw/virtio-serial-bus.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c >> index efa8a81..ccce1fa 100644 >> --- a/hw/virtio-serial-bus.c >> +++ b/hw/virtio-serial-bus.c >> @@ -641,6 +641,7 @@ static void virtio_serial_post_load_timer_cb(void >> *opaque) >> VirtIOSerial *s = opaque; >> VirtIOSerialPort *port; >> uint8_t host_connected; >> + VirtIOSerialPortClass *vsc; >> >> for (i = 0 ; i < s->post_load.nr_active_ports; ++i) { >> port = s->post_load.connected[i].port; >> @@ -653,6 +654,11 @@ static void virtio_serial_post_load_timer_cb(void >> *opaque) >> send_control_event(port, VIRTIO_CONSOLE_PORT_OPEN, >> port->host_connected); >> } >> + vsc = VIRTIO_SERIAL_PORT_GET_CLASS(port); >> + if (port->guest_connected && vsc->guest_open) { >> + /* replay guest open */ >> + vsc->guest_open(port); >> + } > > I think the last time we discussed this, my objection was the guest > isn't really doing an open again, and since spice depends on the > guest's connectedness, spice should have a post-load hook or a similar > bh that would query virtio-serial for guest connectedness status, and, > if connected, do whatever setup is necessary. > > Adding Gerd and Markus as I think they were involved in the discussion > last time as well.
Got a pointer to the old thread?