From: David Miller <davem@davemloft.net>
To: therbert@google.com
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH v2] Receive Packet Steering
Date: Tue, 14 Jul 2009 12:33:13 -0700 (PDT) [thread overview]
Message-ID: <20090714.123313.186658126.davem@davemloft.net> (raw)
In-Reply-To: <65634d660907131504u35154059m5934cca3cb9363e0@mail.gmail.com>
From: Tom Herbert <therbert@google.com>
Date: Mon, 13 Jul 2009 15:04:51 -0700
> On Mon, Jul 13, 2009 at 10:49 AM, David Miller <davem@davemloft.net> wrote:
>>
>> Why not take this to it's logical end point, which is to monitor
>> transmits using a tiny flow lookup table, and map receives of the same
>> flow to the same cpu?
>
> Is it better do use transmits, or monitor where recvmsg was called?
First of all, using recvmsg would be on the more stateful side, and
we try to avoid that. All of the logic should work if we had to
put it purely inside of dev_hard_xmit() and netif_receive_skb(),
way below the stack itself ever gets involved.
Second, Intel has committed the "monitor the TXs to device where to
steer RX" logic into silicon with their Flow Director stuff. What
does that tell you about it's effectiveness? :-)
It seems the best heuristic to me, especially since it satisfies
many of the design constraints.
> 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.
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.
> 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 :-)
next prev parent reply other threads:[~2009-07-14 19:33 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 [this message]
2009-07-14 23:28 ` Tom Herbert
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=20090714.123313.186658126.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=therbert@google.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;
as well as URLs for NNTP newsgroup(s).