[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: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-devel] [patch] Fix block I/O hang. |
Date: |
Tue, 11 Nov 2008 18:48:00 +0100 |
User-agent: |
Thunderbird 2.0.0.16 (X11/20080723) |
Anthony Liguori wrote:
> Gerd Hoffmann wrote:
>> Hi,
>>
>> $subject says all.
>>
>> please apply,
>> Gerd
>
> Under what circumstances? posix_aio_read() is only invoked from a
> select callback. This means there should be data available to be read.
Hmm, looked at the loop again a bit closer.
First, the check for errno == EAGAIN is superfluous when the filehandle
isn't in non-blocking mode. It will not happen.
Second, the check for errno == EINTR is superfluous too because the loop
will retry the read() syscall anyway for *any* error.
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.
cheers,
Gerd
Re: [Qemu-devel] [patch] Fix block I/O hang., Gerd Hoffmann, 2008/11/12