Re: [PATCH 09/13] aio: add support for async openat()
From: Chris Mason
Date: Mon Jan 11 2016 - 20:45:32 EST
On Mon, Jan 11, 2016 at 04:22:28PM -0800, Linus Torvalds wrote:
> On Mon, Jan 11, 2016 at 2:07 PM, Benjamin LaHaise <bcrl@xxxxxxxxx> wrote:
> > Another blocking operation used by applications that want aio
> > functionality is that of opening files that are not resident in memory.
> > Using the thread based aio helper, add support for IOCB_CMD_OPENAT.
>
> So I think this is ridiculously ugly.
>
> AIO is a horrible ad-hoc design, with the main excuse being "other,
> less gifted people, made that design, and we are implementing it for
> compatibility because database people - who seldom have any shred of
> taste - actually use it".
>
> But AIO was always really really ugly.
>
> Now you introduce the notion of doing almost arbitrary system calls
> asynchronously in threads, but then you use that ass-backwards nasty
> interface to do so.
[ ... ]
> I'm adding Ingo the to cc, because I think Ingo had a "run this list
> of system calls" patch at one point - in order to avoid system call
> overhead. I don't think that was very interesting (because system call
> overhead is seldom all that noticeable for any interesting system
> calls), but with the "let's do the list asynchronously" addition it
> might be much more intriguing. Ingo, do I remember correctly that it
> was you? I might be confused about who wrote that patch, and I can't
> find it now.
Zach Brown and Ingo traded a bunch of ideas. There were chicklets and
syslets? A little search, it looks like acall was a slightly different
iteration, but the patches didn't make it off oss.oracle.com:
https://lwn.net/Articles/316806/
-chris