For anyone interested in high throughput/low latency networking, netmap ( http://info.iet.unipi.it/~luigi/netmap/ ) looks really exciting in combination with a userspace TCP stack (e.g. unetstack). Pity I have no applications that could use it, would love to experiment.
Not sure I see why you would want to use it with a userspace network stack, I am sure at that point kernel networking is going to be faster. Netmap seems more useful for bridging, logging and UDP applications to me...
Localizing packet processing significantly improves cache performance, in addition to avoiding copies and context switches. Receiving data from a socket almost always necessitates it being copied from a SKB to userspace memory, and prior to that from the driver's rx ring to a SKB. Grep for all references to 'cache' in http://lwn.net/Articles/169961/ which is Van Jacobsen's earlier work on a system of comparable design. Another (insanely more complex) implementation is http://www.openonload.org/