From: Suparna B. <su...@in...> - 2002-01-30 15:17:56
|
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 <su...@in...> ----- Date: Wed, 30 Jan 2002 20:13:04 +0530 From: Suparna Bhattacharya <su...@in...> To: Benjamin LaHaise <bc...@re...>, ak...@su..., vi...@ma..., jg...@ne... Cc: lin...@kv..., lin...@vg..., lse...@li... Subject: Writeup on AIO design (uploaded) Reply-To: su...@in... 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 maj...@kv.... For more info on Linux AIO, see: http://www.kvack.org/aio/ ----- End forwarded message ----- |
From: Jakub J. <ja...@re...> - 2002-01-30 15:46:34
|
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 |
From: Suparna B. <su...@in...> - 2002-01-30 15:57:55
|
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 |
From: Jakub J. <ja...@re...> - 2002-01-30 16:03:44
|
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 |