From: Stephen Hemminger <stephen@networkplumber.org>
To: Jun Gan <geminijun@gmail.com>
Cc: Asaf Penso <asafp@mellanox.com>,
"users@dpdk.org" <users@dpdk.org>,
Technical Support <support@mellanox.com>
Subject: Re: [dpdk-users] Same 5 tuple UDP packets have been delivered to different queues.
Date: Tue, 8 Oct 2019 20:12:24 -0700 [thread overview]
Message-ID: <20191008201224.083c9625@hermes.lan> (raw)
In-Reply-To: <CABzhwkOF85gkqzfcauiPSoHx27HM7ZkRxhdoW0SJwV1jhs_jrA@mail.gmail.com>
On Tue, 8 Oct 2019 18:56:31 -0700
Jun Gan <geminijun@gmail.com> wrote:
> Hi Asaf,
>
> Thank you so much for your help!
>
> I tend to think there is something missing in my code, do you have any code
> example how to enable RSS?
>
> I did following setup:
>
> eth_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
> eth_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | ETH_RSS_UDP
> eth_conf..rx_adv_conf.rss_conf.rss_hf &= dev_info.flow_type_rss_offloads;
>
> I also tried to add a flow rule, and I found mlx5 doesn't support
> "rte_eth_dev_rss_hash_conf_get"?
>
> Here is the action, all the UDP packets applied this action:
>
> struct rte_flow_action_rss action_rss = {
> .types = ETH_RSS_IP | ETH_RSS_UDP,
> .key_len = 40,
> .queue_num = 4,
> .key = rss_key,
> .queue = queue,
> };
>
>
> And I use spdk reactor to launch multiple threads polling different queue.
>
>
> Thanks,
> Jun Gan
>
>
>
>
> On Tue, Oct 8, 2019 at 4:52 AM Asaf Penso <asafp@mellanox.com> wrote:
>
> > Hello Jun Gan,
> >
> > Thanks for reaching out and posting this query.
> > I'm adding here our support team for further assistance.
> >
> > Regards,
> > Asaf Penso
> >
> > > -----Original Message-----
> > > From: users <users-bounces@dpdk.org> On Behalf Of Jun Gan
> > > Sent: Monday, October 7, 2019 6:13 AM
> > > To: users@dpdk.org
> > > Subject: [dpdk-users] Same 5 tuple UDP packets have been delivered to
> > > different queues.
> > >
> > > Hi All,
> > >
> > > I just added multiple queues and enabled RSS in our application, I set
> > > "rss_hf" to "ETH_RSS_IP | ETH_RSS_UDP", but I can see that same 5 tuple
> > > packets, will be delivered to different queues. Do I miss something?
> > >
> > > Here is the code:
> > >
> > > eth_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
> > > eth_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | ETH_RSS_UDP
> > > eth_conf..rx_adv_conf.rss_conf.rss_hf &=
> > > dev_info.flow_type_rss_offloads;
> > >
> > >
> > > I actually have two queues, and two different threads(lcore) busy
> > > polling(rx_burst) on these two queues, I also met other weird issues
> > like:
> > >
> > > dpdk-stable-18.11.2/drivers/net/mlx5/mlx5_rxtx_vec_sse.h:743:
> > > rxq_burst_v:
> > > Assertion `rxq->rq_pi == rxq->cq_ci' failed.
> > >
> > > I don't understand what does this means, I think rx_burst on the same nic
> > > different queue should be thread-safe, isn't it?
> > >
> > > I'm using dpdk 18.11.2, OS is centos 7.6 and NIC is MLX CX-5.
> > >
> > > I really appreciate it if anyone can help!!
I think you might have confused base RSS and rte_flow RSS.
The base RSS is about spreading incoming across all receive queues.
This is the part in rx_add_conf.
The flow RSS is about spreading matching flows (based on pattern) across a
restricted subset of queues.
My recommendation is use one or the others. Don't use base RSS and rte_flow
at the same time (it doesn't make sense).
next prev parent reply other threads:[~2019-10-09 3:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-07 3:12 Jun Gan
2019-10-08 11:52 ` Asaf Penso
2019-10-09 1:56 ` Jun Gan
2019-10-09 3:12 ` Stephen Hemminger [this message]
2019-10-09 4:29 ` Jun Gan
2019-10-10 1:08 ` Stephen Hemminger
2019-10-10 4:04 ` Jun Gan
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=20191008201224.083c9625@hermes.lan \
--to=stephen@networkplumber.org \
--cc=asafp@mellanox.com \
--cc=geminijun@gmail.com \
--cc=support@mellanox.com \
--cc=users@dpdk.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).