DPDK usage discussions
 help / color / mirror / Atom feed
From: Jun Gan <geminijun@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
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 21:29:46 -0700	[thread overview]
Message-ID: <CABzhwkPtRMOQ2bPE+UzVYv6og8Xt9Az3DaFSEZdKnMFqj4Hi_g@mail.gmail.com> (raw)
In-Reply-To: <20191008201224.083c9625@hermes.lan>

Hi Stephen,

Thanks for the suggestion, I actually tried both, but no difference, the
problem for me is that same src&dsp ip&port udp packets, will be delivered
to different queues.

That breaks my assumption that the packet from some session will be
processed by the same thread on the server.

so besides rx_adv_conf, is there any other things I have to configure?

Thanks,
Jun Gan




On Tue, Oct 8, 2019 at 8:12 PM Stephen Hemminger <stephen@networkplumber.org>
wrote:

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


-- 
Jun Gan

  reply	other threads:[~2019-10-09  4:30 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
2019-10-09  4:29       ` Jun Gan [this message]
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=CABzhwkPtRMOQ2bPE+UzVYv6og8Xt9Az3DaFSEZdKnMFqj4Hi_g@mail.gmail.com \
    --to=geminijun@gmail.com \
    --cc=asafp@mellanox.com \
    --cc=stephen@networkplumber.org \
    --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).