From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TdKaX-0005Ip-AW for qemu-devel@nongnu.org; Tue, 27 Nov 2012 07:48:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TdKaR-0001L7-Er for qemu-devel@nongnu.org; Tue, 27 Nov 2012 07:48:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:12768) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TdKaR-0001Ko-6t for qemu-devel@nongnu.org; Tue, 27 Nov 2012 07:48:27 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id qARCmPqA029387 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 27 Nov 2012 07:48:26 -0500 Date: Tue, 27 Nov 2012 18:18:15 +0530 From: Amit Shah Message-ID: <20121127124815.GD10280@amit.redhat.com> References: <1353850754-22704-1-git-send-email-alevy@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1353850754-22704-1-git-send-email-alevy@redhat.com> Subject: Re: [Qemu-devel] [PATCH] hw/virtio-serial-bus: replay guest open on destination List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alon Levy Cc: Markus Armbruster , qemu-devel@nongnu.org, Gerd Hoffmann 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. Amit