From: Jakub Kicinski <jakub.kicinski@netronome.com>
To: Jonathan Lemon <bsd@fb.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Magnus Karlsson" <magnus.karlsson@intel.com>,
"Björn Töpel" <bjorn.topel@gmail.com>,
"Saeed Mahameed" <saeedm@mellanox.com>
Subject: Re: [RFC] xdp, multiple rss objects
Date: Fri, 29 Mar 2019 14:24:44 -0700 [thread overview]
Message-ID: <20190329142444.6d968cef@cakuba.netronome.com> (raw)
In-Reply-To: <D9CA66DF-F02E-46F2-A07A-1EB4C2CE1962@fb.com>
On Fri, 29 Mar 2019 16:14:57 +0000, Jonathan Lemon wrote:
> Background:
>
> With AF_XDP, packets are placed on queues which are serviced directly from
> an application running in user space, which promises greatly increased
> performance. However, not all incoming packets should be delivered to the
> application; there may be management traffic, or packets which should be
> handled by normal Linux networking applications.
>
> Having the AF_XDP application handle the packets and return them to the
> kernel for processing is not ideal, nor is adding a bpf filter at the kernel
> level which performs the redirection. It would be nicer if the redirection
> was done in the NIC itself. Fortunately, there is a facility for this: the
> RX network flow classification.
>
> Unfortunately, the target of the classification is currently a single queue.
>
> Traffic arriving at a NIC which is not steered to a specific queue can be
> distributed across a set of queues through the RX flow hash redirection
> table (RSS steering). But being able to target a separate RSS object would
> allow arbitrary distribution of previously classified traffic.
>
> Ask:
>
> It would be nice to have more than one RSS table, which would be the target
> of a classifier or default packet stream.
>
> Queues would be attached to an RSS object, and flow classifiers could target
> the RSS object for further distribution. For example, something like:
>
> ethtool -X eth0 rss 0 queue 0-13
> ethtool -X eth0 rss 1 queue 14-55
> ethtool -N eth0 flow-type udp6 dst-port 4242 rss 1
>
> This would set up a default RSS object (rss 0), which sprays traffic to 14
> queues; this would be equivalent to "ethtool -X eth0 equal 14". At the same
> time, a second object (rss 1) is set up, distributing traffic across another
> set of queues.
>
> Is there interest in adding this type of feature? Having the ability to
> express this concept (not necessarily in ethtool) should facilitate having
> HW vendors add this to their products. I believe that some vendors have
> hardware which may be capable of this already.
I thought Ed Cree added something like that to ethtool - multiple RSS
contexts that is: commit 84a1d9c48200 ("net: ethtool: extend RXNFC API
to support RSS spreading of filter matches").
With Netronome NICs you could also program your RSS with offloaded BPF.
Unfortunately only Intel supports AF_XDP right now so that probably
doesn't help you :(
next prev parent reply other threads:[~2019-03-29 21:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-29 16:14 [RFC] xdp, multiple rss objects Jonathan Lemon
2019-03-29 21:24 ` Jakub Kicinski [this message]
2019-03-29 21:57 ` Jonathan Lemon
2019-03-30 15:52 ` William Tu
2019-04-01 16:25 ` Jonathan Lemon
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=20190329142444.6d968cef@cakuba.netronome.com \
--to=jakub.kicinski@netronome.com \
--cc=bjorn.topel@gmail.com \
--cc=bsd@fb.com \
--cc=magnus.karlsson@intel.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@mellanox.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).