From: Evgeniy Polyakov <[EMAIL PROTECTED]>
Date: Mon, 8 May 2006 16:24:22 +0400

> I hope he does not take offence at name shortening :)

Perhaps you are still not convinced how truly expensive the code path
from netif_receive_skb() to the protocol receive processing really is.

Van's channels eliminate that entire code path, and all it's data
structure references and locks, completely.  And by foregoing all of
those data references and expensive locks, we free up precious cpu
cache space and cpu cycles for other work.

Because you cannot "simulate" the extra cache lines that are available
by eliminating the code path between netif_receive_skb() and udp_rcv()
you will really need to compare with a full implementation of channels
to say anything for certain.

And we've known that getting rid of this code path is necessary for
_AGES_.  Ask anyone who has been to any of the yearly Linux networking
conferences, over and over again we talk about a grand unified flow
cache that would turn all of the routing, netfilter, and socket lookups
into one lookup.

All of these lookups touch different data structures, have different
locking rules, and have very poor cache behavior.

Van gets the transformation into a single lookup as a side effect of
how his channels work.

It is absolutely necessary to find ways to get rid of these layering
costs.  "Layering is how you design networking protocols, not how you
implement them."
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to