For slightly different wording, you may also want to read
ftp://lrcftp.epfl.ch/pub/linux/atm/papers/atm_on_lowend.ps.gz
or have a look at net/atm/mmuio.c in
ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.10.tar.gz
See http://lrcwww.epfl.ch/linux-atm/ for the general picture.
What's different is that I don't have a zero page cache (no SMP ;-), but
I like that idea), and that I keep write buffers simply locked instead of
giving them to the kernel. To improve the latter, my (untested) free_range
function could be used in operations that are guaranteed to discard all
previous contents (e.g. in read system calls), but I haven't experimented
with that bit yet.
Also, my code only works with the ATM side of networking - the whole IP
stack is a bit more complex, but I think Alan has started working on
that.
- Werner
-- _________________________________________________________________________ / Werner Almesberger, DI-LRC,EPFL,CH werner.almesberger@lrc.di.epfl.ch / /_IN_R_133__Tel_+41_21_693_6621__Fax_+41_21_693_6610_____________________/