Re: Approaches to making io_submit not block

Daniel Ehrenberg
2011-08-30T22:24:37Z

On Tue, Aug 30, 2011 at 2:37 PM, Jens Axboe <axboe@kernel.dk> wrote:
> On 2011-08-30 15:30, Jeff Moyer wrote:
>> Daniel Ehrenberg <dehrenberg@google.com> writes:
>>
>>> Hi Jens, Jeff,
>>>
>>> I just sent a letter to LKML wondering about changes to io_submit that
>>> I'm thinking of working on. Based on your past contributions to this
>>> area, I'd really like to know what you think of this plan--how well it
>>> matches with the existing design, the potential for inclusion in
>>> upstream Linux, if you see problems.
>>
>> Hi, Dan,
>>
>> Thanks for taking the time to make AIO better!  There is a mailing list
>> for aio discussions: linux-aio@kvack.org, so please CC that in the
>> future (I don't read lkml anymore).
>>
>> Right now I'm a bit inundated, so I can't give this a proper review.
>> I should be able to free up some time in the next two weeks, though.
>>
>> In the mean time, you can google for suparna's retry-based aio patches.
>> Specifically, take a look at how she used prepare_to_wait/finish_wait.
>> If you haven't done any empirical tests to see where io_submit blocks,
>> there is a sample systemtap script for that:
>>   http://sourceware.org/systemtap/examples/io/io_submit.stp
>> Other attempts at non-blocking aio were off the deep end: fibrils and
>> syslets.  Fibrils didn't go anywhere because Ingo didn't like them (for
>> good reason, they essentially introduced another scheduling layer).
>> Syslets didn't go anywhere b/c they were insane (returned to the
>> user-space process with a different PID, among other things!).
>>
>> If you do go forward in the meantime, you can likely use EIOCBRETRY
>> instead of EAGAIN.
>>
>> I hope that helps!
>
> FWIW, I updated the buffered AIO retry patches some time after Suparna
> droped them. By the date stamp in my branch, they are now 23 months
> old... Anyway, at least it's more recent, you can find them here:
>
> http://git.kernel.dk/?p=linux-block.git;a=shortlog;h=refs/heads/aio-buffered
>
> --
> Jens Axboe
>
>
Thanks! Do you know why the patches weren't merged? I can't find much
discussion about them.

Dan