> 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.
havent checked out your source yet, but under AIX similar approach is
used for async IO. Under Linux, if processes that get clone()-d with
VM_SHARE, and run on another CPU (or even the same if the socket
operation sleeps) and use the same page(s) which are locked, then we
might get problems. If there is a local variable right in the same page as
your IO buffer, doesnt this cause problems or unnecessary/unexpected sleeps?
well, on the x86, maybe segments with 1 byte granularity could be used
to cut off user-space IO buffers, but this is ugly, isnt it
-- mingo, who likes the idea of zero copy, but still doesnt see how it
could be done cleanly 8(