Oops, oops, oops, I mispelt the website.
It should have been:
http://lse.sourceforge.net/io/aionotes.txt
My apologies !
(Thanks to Daniel Phillips and John Williams for pointing this out)
Regards
Suparna
----- Forwarded message from Suparna Bhattacharya <[email protected]> -----
Date: Wed, 30 Jan 2002 20:13:04 +0530
From: Suparna Bhattacharya <[email protected]>
To: Benjamin LaHaise <[email protected]>, [email protected], [email protected],
[email protected]
Cc: [email protected], [email protected],
[email protected]
Subject: Writeup on AIO design (uploaded)
Reply-To: [email protected]
Hello,
I have just uploaded the aio design notes to:
http://lse.sourcefourge.net/io/aionotes.txt
Thanks to all those who helped with inputs and reviews of the interim
drafts.
The writeup attempts to bring out some of the interesting design issues
and discuss the solutions to those issues and the approach taken in
Ben's design, and touches on the ideas for addressing some of the pending
issues, todo items and potential enhancements. It also looks at some of
these aspects in the context of other implementations that exist or have
been attempted on Linux (SGI kaio, Univ of Winsconsin-Madison's BAIO,
Andi Kleen's early prototype), and the AIO related interfaces available
on other OS's (POSIX aio, NT IOCPs, BSD kqueues), and also the DAFS api
specifications.
This was written with the intention of triggering discussions (though
this writeup wouldn't have been possible without all the discusions we've
already had :)).
So please do share your insights, perspectives and comments.
All the more so, if you already have a good understanding the aio
design !
For those who are new to aio:
The focus here is only the in-kernel aio design, so you won't find much
about actually using aio (Dan Kegel's page might be a better
place to start on that). There should, however, be some insights,
and pointers to the in-kernel primitives introduced as part of aio,
say, if you intend to implement your own async state machine (for some
reason !). However, the writeup does not get into low level details and
is not intended to be a substitute for looking at the code :).
It should help you follow the code more easily though (I hope).
Regards
Suparna
--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to [email protected]. For more info on Linux AIO,
see: http://www.kvack.org/aio/
----- End forwarded message -----
On Wed, Jan 30, 2002 at 08:51:15PM +0530, Suparna Bhattacharya wrote:
>
> Oops, oops, oops, I mispelt the website.
> It should have been:
>
> http://lse.sourceforge.net/io/aionotes.txt
a. User level threads
- glibc approach (one user thread per operation ?)
poor scalability, performance
Glibc uses a pool of threads, not one thread per operation.
All requests against a single file descriptor are served sequentially,
while for different fds they are served by different threads unless aio
thread limit has been reached, in which case they are queued too.
b. Pool of threads
- have a pool of threads servicing an aio request queue for the
task - tradeof between degree of concurrency/utilization and
resource consumption.
Jakub
On Wed, Jan 30, 2002 at 10:46:27AM -0500, Jakub Jelinek wrote:
> On Wed, Jan 30, 2002 at 08:51:15PM +0530, Suparna Bhattacharya wrote:
> >
> > Oops, oops, oops, I mispelt the website.
> > It should have been:
> >
> > http://lse.sourceforge.net/io/aionotes.txt
>
> a. User level threads
> - glibc approach (one user thread per operation ?)
> poor scalability, performance
>
> Glibc uses a pool of threads, not one thread per operation.
> All requests against a single file descriptor are served sequentially,
> while for different fds they are served by different threads unless aio
> thread limit has been reached, in which case they are queued too.
Thanks for the clarification.
What is the aio thread limit like ?
>
> b. Pool of threads
> - have a pool of threads servicing an aio request queue for the
> task - tradeof between degree of concurrency/utilization and
> resource consumption.
>
> Jakub
On Wed, Jan 30, 2002 at 09:30:47PM +0530, Suparna Bhattacharya wrote:
> Thanks for the clarification.
> What is the aio thread limit like ?
Default is max 20 threads, but one can change this in aio_init().
Jakub