Interesting networking talk

Bryan Sant bryan.sant at gmail.com
Fri Feb 10 11:26:38 MST 2006


On 2/9/06, Levi Pearson <levi at cold.org> wrote:
> Apparently Van Jacobson just gave a talk at linux.conf.au, in which
> he talked about speeding up Linux networking by streamlining the data
> path from network card to userspace.  It's pretty interesting that
> moving the network stack /out/ of the kernel gave a huge performance
> increase.  Definitely worth looking at for anyone interested in high-
> performance networking and OS kernels.
>
> The slides from the talk are here: http://www.lemis.com/grog/
> Documentation/vj/
> And there's a good summary here (search for Net Channels): http://
> vger.kernel.org/~davem/cgi-bin/blog.cgi
>
>                 --Levi

Wo.  This sounds crazy (though it may well be true).  On the one hand,
you can see the stack operating more efficiently in ring 0 with the
kernel.  On the other hand -- who is the consumer of that stack? -- A
user space program!  So pushing things out into user space would
obviously reduce the number of system calls made for data (which are
relatively expensive).

You still have to talk to hardware though.  Eventually you have to
talk to the ethernet controller.  If my user space program uses it's
own TCP/IP stack, but that stack has to talk to the ethernet
controller, aren't I making the same number of system calls (or more)?
 Also, I'm possiblity bypassing any kernel based security (my
userspace stack would have to know that you can't listen on ports
<1024 if you're not root, etc).

Anyway.  This is a cool topic.  I don't know enough to fully
understand the tradeoffs, but regardless, I think it's cool that
someone has given us food for thought on system vs user space
performance.

-Bryan



More information about the PLUG mailing list