qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/3] Always use nonblocking mode for qemu_chr_op


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 2/3] Always use nonblocking mode for qemu_chr_open_fd.
Date: Tue, 22 Jul 2008 20:26:59 -0500
User-agent: Thunderbird 2.0.0.14 (X11/20080501)

Hi,

Ian Jackson wrote:
The rest of qemu assumes that IO operations on a CharDriverState do
not block.  Currently there are a couple of cases where such a driver
was set up but the calls to set nonblocking mode were missing:
 * qemu_chr_open_pty
 * qemu_chr_open_pipe
 * qemu_chr_open_stdio

This is fixed by adding two calls to socket_set_nonblock to
qemu_chr_open_fd.

This changes semantics a bit. Previously, using a pty would guarantee that data is always written as qemu_chr_write does not perform any sort of buffering.

Now, that data will be silently dropped instead of causing QEMU to block. I don't think it's perfectly clear that one behaviour is clearly better than the other.

Regards,

Anthony Liguori

Signed-off-by: Ian Jackson <address@hidden>
---
 vl.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/vl.c b/vl.c
index 4f31288..c428c7e 100644
--- a/vl.c
+++ b/vl.c
@@ -2090,6 +2090,9 @@ static CharDriverState *qemu_chr_open_fd(int fd_in, int 
fd_out)
     CharDriverState *chr;
     FDCharDriver *s;
+ socket_set_nonblock(fd_in);
+    socket_set_nonblock(fd_out);
+
     chr = qemu_mallocz(sizeof(CharDriverState));
     if (!chr)
         return NULL;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]