[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [patch] Fix block I/O hang.
From: |
Johannes Stezenbach |
Subject: |
Re: [Qemu-devel] [patch] Fix block I/O hang. |
Date: |
Wed, 12 Nov 2008 14:49:02 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hi,
On Tue, Nov 11, 2008 at 06:48:00PM +0100, Gerd Hoffmann wrote:
> Anthony Liguori wrote:
> >
> > Under what circumstances? posix_aio_read() is only invoked from a
> > select callback. This means there should be data available to be read.
...
>
> Third, when called from a select callback it shouldn't block indeed. It
> does though for me now and then when booting xen guests (with a big
> stack of xenner patches). Doesn't reproduce reliable though. Sprinkled
> in a printk (with rfd being non-blocking) and got a EAGAIN once, so it
> got called with rfd not having data.
I don't know what kind of fd you're talking about, but the
Linux select man page says:
BUGS
Under Linux, select() may report a socket file descriptor as "ready for
reading", while nevertheless a sub‐ sequent read blocks. This could for
example happen when data has arrived but upon examination has wrong
checksum and is discarded. There may be other circumstances in which
a file descriptor is spuriously reported as ready. Thus it may be safer to
use O_NONBLOCK on sockets that should not block.
HTH
Johannes
Re: [Qemu-devel] [patch] Fix block I/O hang., Gerd Hoffmann, 2008/11/12