From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KJlZA-0005GQ-Qc for qemu-devel@nongnu.org; Fri, 18 Jul 2008 04:43:52 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KJlZ8-0005Du-Rj for qemu-devel@nongnu.org; Fri, 18 Jul 2008 04:43:51 -0400 Received: from [199.232.76.173] (port=36050 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KJlZ8-0005De-Dp for qemu-devel@nongnu.org; Fri, 18 Jul 2008 04:43:50 -0400 Received: from ns.suse.de ([195.135.220.2]:36393 helo=mx1.suse.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KJlZ7-0005yd-TL for qemu-devel@nongnu.org; Fri, 18 Jul 2008 04:43:50 -0400 Message-ID: <4880574C.1020703@suse.de> Date: Fri, 18 Jul 2008 10:41:48 +0200 From: Kevin Wolf MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 2/2] open ptys in non-blocking mode. References: <1215605958-22623-1-git-send-email-kraxel@redhat.com> <1215605958-22623-2-git-send-email-kraxel@redhat.com> In-Reply-To: <1215605958-22623-2-git-send-email-kraxel@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: xen-devel@lists.xensource.com, Ian Jackson , Gerd Hoffmann [Crossposting to xen-devel] Ian, we need something like this for qemu-xen (or ioemu-remote or whatever it's called now). Currently you must attach to the console of a domain, otherwise it won't boot up and keep hanging in a blocking write because the buffer is full. The old ioemu had a hack in unix_write (doing a select before the write) which you didn't merge into qemu-xen. In fact, I noticed that you even removed that function entirely and I'm wondering why. Kevin Gerd Hoffmann schrieb: > Otherwise qemu will hang in case nobody connects to the pty and the > guests prints enougth messages to fill up the buffer (which is 4k > in linux). > > Downside is that data may get lost in case the reader is too slow. > > Ideally we could detect whenever someone is connected to the other end > of the pseudo tty and write data only in connected mode (like it is done > for tcp/telnet). I'm not aware of any way to accomplish that though. > > Signed-off-by: Gerd Hoffmann > --- > vl.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/vl.c b/vl.c > index 587b91c..adc8f5f 100644 > --- a/vl.c > +++ b/vl.c > @@ -2468,6 +2468,7 @@ static CharDriverState *qemu_chr_open_pty(void) > /* Set raw attributes on the pty. */ > cfmakeraw(&tty); > tcsetattr(slave_fd, TCSAFLUSH, &tty); > + socket_set_nonblock(master_fd); > > fprintf(stderr, "char device redirected to %s\n", ptsname(master_fd)); > return qemu_chr_open_fd(master_fd, master_fd);