netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tom Herbert <therbert@google.com>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH v2] Receive Packet Steering
Date: Tue, 14 Jul 2009 16:28:01 -0700	[thread overview]
Message-ID: <65634d660907141628g671812f9t4219cc8b6a493425@mail.gmail.com> (raw)
In-Reply-To: <20090714.123313.186658126.davem@davemloft.net>

>
> > Right.  In fact, just using the hash as the key is what you want when
> > device provides the hash (i.e. Toeplitz).  The caveat is that we
> > should to prevent OOO packets when threads migrate, I think I have a
> > reasonable solution for that following your earlier suggestion.
>
> But as you found, compared to jhash, Toeplitz is expensive to compute
> and you would need to do this if implemented by monitoring transmits.

Well I'd rather not have to compute any hash on transmit.  Toeplitz
could be populated in another field of skb from a saved value in the
socket struct.

>
> And furthermore, from the device perspective:
>
> 1) some (such as NIU) provide different hash values, not Toeplitz
>
> 2) it is expensive to extract this value (must enable different,
>   larger, RX descriptor modes, thus more DMA traffic, etc.)
>
> I really don't think Toeplitz is a net win, to be honest.

Using the Toeplitz hash in steering lookup has given us about 10% more
maximum pps (2 different NICs), and we haven't really noticed negative
effects because of the extra descriptor overhead-- so I'm not going to
give up on it too easily!  A device provided hash could probably be
used as an opaque value-- used as hash key into steering table on RX,
saved in socket structure in RX, and then sent with skb on transmit
during which it is used to update the steering table.  At the socket
layer, we would just need to collect and cache values in socket
structures.

>
> > I hope to have a new patch soon for steering packets to application
> > CPU and using device hash, thanks for bugging me on it!
>
> I had no choice, as I'm giving a presentation on this stuff tomorrow
> night here in NYC :-)

Cool, do you happen to have slides.... :-)

  reply	other threads:[~2009-07-14 23:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-04  4:03 [PATCH v2] Receive Packet Steering Tom Herbert
2009-05-04  5:30 ` Eric Dumazet
2009-05-04  6:10   ` Eric Dumazet
2009-05-04  7:13   ` Eric Dumazet
2009-05-12 17:28   ` Tom Herbert
2009-05-04  7:08 ` Eric Dumazet
2009-05-04  7:59 ` Andi Kleen
2009-05-04 18:22 ` Jarek Poplawski
2009-05-04 20:43   ` Jarek Poplawski
2009-06-10  8:23 ` David Miller
2009-06-15  5:54   ` Tom Herbert
     [not found]   ` <65634d660906142252y6f7fc021l844b172995c10044@mail.gmail.com>
2009-06-15  9:02     ` David Miller
2009-06-15 16:39       ` Tom Herbert
2009-06-15 23:18         ` David Miller
2009-07-13 17:49 ` David Miller
2009-07-13 22:04   ` Tom Herbert
2009-07-14 19:33     ` David Miller
2009-07-14 23:28       ` Tom Herbert [this message]
2009-07-17  2:48         ` David Miller
2009-07-17 18:05           ` Tom Herbert
2009-07-17 18:08             ` David Miller
2009-07-17 19:59               ` Tom Herbert
2009-07-18  3:54                 ` David Miller

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=65634d660907141628g671812f9t4219cc8b6a493425@mail.gmail.com \
    --to=therbert@google.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    /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).