We've acquired some NFS readahead daemons and an asynchronous pager. I don't
think either of those could do well in userspace ;)
The NFS daemon now does use mmap so that cuts down the performance problems.
Until I can persuade Linus that I want to allocate virtual address space and
fill the pages in for it on interrupts however there will be problems with
large network buffers. Thats something a pile of ATM folk are playing with
ideas for resolving