[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: |
Thu, 13 Nov 2008 10:14:31 +0100 |
User-agent: |
Thunderbird 2.0.0.16 (X11/20080723) |
Anthony Liguori wrote:
> Gerd Hoffmann wrote:
>>
>>> Under what circumstances? posix_aio_read() is only invoked from a
>>> select callback. This means there should be data available to be read.
>>>
>>
>> Well, there are *two* select loops: main_loop_wait() and
>> qemu_aio_wait(). Calling sync block i/o functions from a i/o handler
>> causes the two select loops run nested => boom.
>
> Yeah, qemu_aio_wait needs to die. Can you resubmit your patch with a
> better description, and change the read() look in posix_aio_read() to
> consume as much data as possible before hitting EAGAIN?
I've fixed my problem by changing xen_disk to use a bottom half for
actual work, so the block read/write calls are moved out of the select
loop anyway. Which turned out to be useful for aio support too.
So I'm fine again with the current state. I can create such a patch
nevertheless though.
cheers,
Gerd
Re: [Qemu-devel] [patch] Fix block I/O hang., Gerd Hoffmann, 2008/11/12