From: Tom Herbert <therbert@google.com>
To: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>,
Andi Kleen <andi@firstfloor.org>,
netdev@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
herbert@gondor.apana.org.au, jesse.brandeburg@intel.com,
shemminger@vyatta.com, David Miller <davem@davemloft.net>
Subject: Re: [RFC v2: Patch 1/3] net: hand off skb list to other cpu to submit to upper layer
Date: Fri, 13 Mar 2009 10:06:56 -0700 [thread overview]
Message-ID: <65634d660903131006n44f068dw18b2fe9dce25399e@mail.gmail.com> (raw)
In-Reply-To: <1236926602.2567.528.camel@ymzhang>
On Thu, Mar 12, 2009 at 11:43 PM, Zhang, Yanmin
<yanmin_zhang@linux.intel.com> wrote:
>
> On Thu, 2009-03-12 at 14:08 +0000, Ben Hutchings wrote:
> > On Thu, 2009-03-12 at 16:16 +0800, Zhang, Yanmin wrote:
> > > On Wed, 2009-03-11 at 12:13 +0100, Andi Kleen wrote:
> > [...]
> > > > and just use the hash function on the
> > > > NIC.
> > > Sorry. I can't understand what the hash function of NIC is. Perhaps NIC hardware has something
> > > like hash function to decide the RX queue number based on SRC/DST?
> >
> > Yes, that's exactly what they do. This feature is sometimes called
> > Receive-Side Scaling (RSS) which is Microsoft's name for it. Microsoft
> > requires Windows drivers performing RSS to provide the hash value to the
> > networking stack, so Linux drivers for the same hardware should be able
> > to do so too.
> Oh, I didn't know the background. I need study more about network.
> Thanks for explain it.
>
You'll definitely want to look at the hardware provided hash. We've
been using a 10G NIC which provides a Toeplitz hash (the one defined
by Microsoft) and a software RSS-like capability to move packets from
an interrupting CPU to another for processing. The hash could be used
to index to a set of CPUs, but we also use the hash as a connection
identifier to key into a lookup table to steer packets to the CPU
where the application is running based on the running CPU of the last
recvmsg. Using the device provided hash in this manner is a HUGE win,
as opposed to taking cache misses to get 4-tuple from packet itself to
compute a hash. I posted some patches a while back on our work if
you're interested.
We also using multiple RX queues of the 10G device in concert with
pretty good results. We have noticed that the interrupt overheads
substantially mitigate the benefits. In fact, I would say the
software packet steering has provided the greater benefit (and it's
very useful on our many 1G NICS that don't have multiq!).
Tom
next prev parent reply other threads:[~2009-03-13 17:11 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-11 8:53 Zhang, Yanmin
2009-03-11 11:13 ` Andi Kleen
2009-03-12 8:16 ` Zhang, Yanmin
2009-03-12 14:08 ` Ben Hutchings
2009-03-13 6:43 ` Zhang, Yanmin
2009-03-13 17:06 ` Tom Herbert [this message]
2009-03-13 18:51 ` David Miller
2009-03-13 21:01 ` Tom Herbert
2009-03-13 22:10 ` Ben Hutchings
2009-03-13 22:15 ` Stephen Hemminger
[not found] ` <65634d660903131358h765bef64y6a0f1b0db7400f6f@mail.gmail.com>
2009-03-13 21:02 ` David Miller
2009-03-13 21:59 ` Tom Herbert
2009-03-13 22:19 ` David Miller
2009-03-13 23:58 ` Herbert Xu
2009-03-14 0:24 ` Tom Herbert
2009-03-14 1:53 ` Andi Kleen
2009-03-14 2:19 ` David Miller
2009-03-14 13:19 ` Herbert Xu
2009-03-14 18:15 ` Tom Herbert
2009-03-14 18:45 ` David Miller
2009-03-16 16:53 ` Tom Herbert
2009-03-14 1:51 ` Andi Kleen
2009-03-16 3:20 ` Zhang, Yanmin
2009-03-12 14:34 ` Andi Kleen
2009-03-13 9:06 ` Zhang, Yanmin
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=65634d660903131006n44f068dw18b2fe9dce25399e@mail.gmail.com \
--to=therbert@google.com \
--cc=andi@firstfloor.org \
--cc=bhutchings@solarflare.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=jesse.brandeburg@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=shemminger@vyatta.com \
--cc=yanmin_zhang@linux.intel.com \
/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
all inboxes | Powered by JetHome®