qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

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