From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NuyBP-0005qU-9m for qemu-devel@nongnu.org; Thu, 25 Mar 2010 21:17:55 -0400 Received: from [140.186.70.92] (port=50668 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NuyBO-0005qB-2I for qemu-devel@nongnu.org; Thu, 25 Mar 2010 21:17:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NuyBL-000465-1N for qemu-devel@nongnu.org; Thu, 25 Mar 2010 21:17:53 -0400 Received: from mail2.shareable.org ([80.68.89.115]:60999) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NuyBK-000461-Rl for qemu-devel@nongnu.org; Thu, 25 Mar 2010 21:17:51 -0400 Date: Fri, 26 Mar 2010 01:17:49 +0000 From: Jamie Lokier Subject: Re: [Qemu-devel] Re: [PATCH 10/15] virtio-serial: Add QMP events for failed port/device add Message-ID: <20100326011749.GE19308@shareable.org> References: <1269442173-18421-5-git-send-email-amit.shah@redhat.com> <1269442173-18421-6-git-send-email-amit.shah@redhat.com> <1269442173-18421-7-git-send-email-amit.shah@redhat.com> <1269442173-18421-8-git-send-email-amit.shah@redhat.com> <1269442173-18421-9-git-send-email-amit.shah@redhat.com> <1269442173-18421-10-git-send-email-amit.shah@redhat.com> <1269442173-18421-11-git-send-email-amit.shah@redhat.com> <20100324173415.63e31bd0@redhat.com> <20100325034717.GA23562@amit-x200.redhat.com> <20100325153406.69fbc717@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100325153406.69fbc717@redhat.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: Amit Shah , qemu list , "Michael S. Tsirkin" , Gerd Hoffmann , Juan Quintela Luiz Capitulino wrote: > On Thu, 25 Mar 2010 09:17:17 +0530 > Amit Shah wrote: > > > On (Wed) Mar 24 2010 [17:34:15], Luiz Capitulino wrote: > > > On Wed, 24 Mar 2010 20:19:28 +0530 > > > Amit Shah wrote: > > > > > > > When adding a port or a device to the guest fails, management software > > > > might be interested in knowing and then cleaning up the host-side of the > > > > port. Introduce QMP events to signal such errors. > > > > > > I'm completely unfamiliar with virtio-serial, so let me ask: how are ports > > > added? I'd expect the command performing this operation to fail in this case. > > > > If adding the port fails in qemu, then the command will fail. However if > > adding the port in the guest fails, we raise this QMP event. Adding in > > the guest could fail because of several reasons, like ENOMEM. In this > > case, the mgmt might want to hot-unplug the port from qemu so that > > resources are freed and also apps are notified of guest side not ready. > > Ok, what about a disconnect? Does virtio-serial have this kind of action? Disconnect would be valuable. E.g. if the guest app dies (but not the guest kernel), it won't get a chance to send an "I'm going away" message. Machine reboot, PCI reset and so on, should probably trigger a disconnect event too (perhaps annotated with the reason), so that the host app's byte stream parser can reliably start parsing anew. Somehow that reset event needs to be synchronised with data transport, so the host app works when the guest boots, reconnects and sends more data before the host app has had enough time to process the earlier reset event. Connect event is a nice idea for symmetry, so the host knows when the guest app has started up, but it's not essential as the guest app can just send a message. -- Jamie