lkml.org 
[lkml]   [2011]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Approaches to making io_submit not block
    On Tue, 30 Aug 2011 16:32:08 -0600
    Jens Axboe <axboe@kernel.dk> wrote:

    > On 2011-08-30 16:19, Daniel Ehrenberg wrote:
    > > 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.
    >
    > Not quite sure, and after working on them and fixing thing up, I don't
    > even think they are that complex or intrusive (which I think otherwise
    > would've been the main objection). Andrew may know/remember.

    Boy, that was a long time ago. I was always unhappy with the patches
    because of the amount of additional code/complexity they added.

    Then the great syslets/threadlets design session happened and it was
    expected that such a facility would make special async handling for AIO
    unnecessary. Then syslets/threadlets didn't happen.



    \
     
     \ /
      Last update: 2011-08-31 00:45    [W:0.025 / U:64.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site