If you look hard you'll see the networking goes out of its way to minimise
the numbers of layers of events and passing it does. On a good cache hit
data goes user mode to buffer and DMA to card in one pass.
> There are a lot of similarities between console I/O and network
> I/O: both deal with very high bandwidth data streams, both have to handle
Console I/O at 100Mbits would be an interesting concept. Extending the argument
to include stuff like high speed serial ports or graphical I/O then it sounds
very valid as a comparison.
> pretty much a necessity. You simply cannot provide an adequate level of
> speed and flexibility with a traditional function-based API - even if you
> extend one of those to cover every single I/O device currently in
Sounds like streams to me. The networking code avoids this kind of layered
flexibility for pure speed reasons. We try to do everything in one pass and
anything that hasnt changed we try and cache.
Alan