From: Johannes Stezenbach <js@sig21.net>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [patch] Fix block I/O hang.
Date: Wed, 12 Nov 2008 14:49:02 +0100 [thread overview]
Message-ID: <20081112134902.GA4014@linuxtv.org> (raw)
In-Reply-To: <4919C550.5020609@redhat.com>
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
next prev parent reply other threads:[~2008-11-12 13:49 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-11 16:35 [Qemu-devel] [patch] Fix block I/O hang Gerd Hoffmann
2008-11-11 16:49 ` Anthony Liguori
2008-11-11 17:48 ` Gerd Hoffmann
2008-11-11 17:55 ` Anthony Liguori
2008-11-11 20:51 ` Gerd Hoffmann
2008-11-11 21:07 ` Anthony Liguori
2008-11-11 21:34 ` Gerd Hoffmann
2008-11-12 13:49 ` Johannes Stezenbach [this message]
2008-11-12 14:58 ` Anthony Liguori
2008-11-12 15:01 ` Gerd Hoffmann
2008-11-12 13:03 ` Gerd Hoffmann
2008-11-12 14:57 ` Anthony Liguori
2008-11-13 9:14 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081112134902.GA4014@linuxtv.org \
--to=js@sig21.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.