Messages in this thread | | | Date | Tue, 30 Aug 2011 15:45:35 -0700 | Subject | Re: Approaches to making io_submit not block | From | Daniel Ehrenberg <> |
| |
On Tue, Aug 30, 2011 at 3:41 PM, Andrew Morton <akpm@linux-foundation.org> wrote: > 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.
Do you think we could accomplish the goals with less additional code/complexity? It looks like the latest version of the patch set wasn't so invasive.
If syslets/threadlets aren't happening, should these patches be reconsidered for inclusion in the kernel?
Thanks, Dan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |