DPDK usage discussions
 help / color / mirror / Atom feed
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).

  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).