From: "David S. Miller" <davem@davemloft.net>
To: johnpol@2ka.mipt.ru
Cc: netdev@vger.kernel.org, caitlinb@broadcom.com, kelly@au1.ibm.com,
rusty@rustcorp.com.au
Subject: Re: Initial benchmarks of some VJ ideas [mmap memcpy vs copy_to_user].
Date: Wed, 10 May 2006 12:58:48 -0700 (PDT) [thread overview]
Message-ID: <20060510.125848.44052388.davem@davemloft.net> (raw)
In-Reply-To: <20060508122418.GA22554@2ka.mipt.ru>
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
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."
next prev parent reply other threads:[~2006-05-10 19:59 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-08 12:24 Initial benchmarks of some VJ ideas [mmap memcpy vs copy_to_user] Evgeniy Polyakov
2006-05-08 19:51 ` Evgeniy Polyakov
2006-05-08 20:15 ` David S. Miller
2006-05-10 19:58 ` David S. Miller [this message]
2006-05-11 6:40 ` Evgeniy Polyakov
2006-05-11 7:07 ` David S. Miller
2006-05-11 8:30 ` Evgeniy Polyakov
2006-05-11 16:18 ` Evgeniy Polyakov
2006-05-11 18:54 ` David S. Miller
2006-05-11 19:30 ` Rick Jones
2006-05-12 7:54 ` Evgeniy Polyakov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060510.125848.44052388.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=caitlinb@broadcom.com \
--cc=johnpol@2ka.mipt.ru \
--cc=kelly@au1.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).