Re: I/O completion ports for Linux

Robey Pointer (robey@lag.net)
Thu, 02 Apr 1998 01:19:45 -0800


Theodore Y. Ts'o wrote:
>
> This is not to say that completion ports are not without their problems.
> There are also questions of what happens if you try to register more
> than one asyncronous I/O --- does it return an error, overwrite the
> previous I/O request, etc? Do you allow asyncronous reads and writes?
> Since I'm on the road, I still haven't had a chance to look at Robey's
> proposal, but there are some design/API questions that we need to
> consider.

My current implementation keeps a queue of operations per
completion-port. So it's possible to have multiple outstanding I/O
requests on one fd -- but they're served in the order that you made the
requests. I believe NT only allows one oustanding async I/O request per
fd, which strongly indicates that they store this info in their
equivalent of "struct file". I'm not sure how much of a limitation this
is in practice... ? It would simplify the implementation a lot, but I'm
not sure if it's a good thing overall. It seems like there are probably
some pretty good reasons that you might want to have two or more
outstanding async I/O requests on a single fd.

Robey

-- 
Robey Pointer              |  "So that's what an invisible barrier
robey@lag.net              |   looks like."   -Time Bandits
http://www.lag.net/~robey  |  (join the 90's retro bandwagon early!)

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu