DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Zhang, Helin" <helin.zhang@intel.com>
To: Vlad Zolotarov <vladz@cloudius-systems.com>,
	Gleb Natapov <gleb@cloudius-systems.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] i40e and RSS woes
Date: Mon, 24 Aug 2015 18:54:46 +0000	[thread overview]
Message-ID: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E5C7D@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <55DB61C9.7060709@cloudius-systems.com>



> -----Original Message-----
> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com]
> Sent: Monday, August 24, 2015 11:26 AM
> To: Zhang, Helin; Gleb Natapov
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] i40e and RSS woes
> 
> 
> 
> On 08/24/15 20:51, Zhang, Helin wrote:
> >
> >> -----Original Message-----
> >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com]
> >> Sent: Monday, August 24, 2015 4:14 AM
> >> To: Zhang, Helin; Gleb Natapov; dev@dpdk.org
> >> Subject: Re: [dpdk-dev] i40e and RSS woes
> >>
> >>
> >>
> >> On 03/05/15 07:56, Zhang, Helin wrote:
> >>> Hi Gleb
> >>>
> >>> Sorry for late! I am struggling on my tasks for the following DPDK
> >>> release these
> >> days.
> >>>> -----Original Message-----
> >>>> From: Gleb Natapov [mailto:gleb@cloudius-systems.com]
> >>>> Sent: Monday, March 2, 2015 8:56 PM
> >>>> To: dev@dpdk.org
> >>>> Cc: Zhang, Helin
> >>>> Subject: Re: i40e and RSS woes
> >>>>
> >>>> Ping.
> >>>>
> >>>> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote:
> >>>>> CCing i40e driver author in a hope to get an answer.
> >>>>>
> >>>>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote:
> >>>>>> I have an application that works reasonably well with ixgbe
> >>>>>> driver, but when I try to use it with i40e I encounter various RSS related
> issues.
> >>>>>>
> >>>>>> First one is that for some reason i40e, when it builds default
> >>>>>> reta table, round down number of queues to power of two. Why is
> >>>>>> this? If
> >>> It seems because of i40e queue configuration. We will check it more
> >>> and see if it can be changed or improved later.
> >> Helin, hi!
> >> Sorry for bringing it back but it seems that the RSS queues number
> >> issue (rounding it down to the nearest power of 2) still hasn't been
> >> addressed in the master branch.
> >>
> >> Could u, pls., clarify what is that "i40e queue configuration" that
> >> requires this alignment u are referring above?
> >>
> >>   From what i could see "num" parameter is not propagated outside the
> >> i40e_pf_config_rss() in any form except for RSS table contents.
> >> This means that any code that would need to know the number of Rx
> >> queues would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init())
> >> and wouldn't be able to know that i40e_pf_config_rss() something
> >> different except for scanning the RSS table in HW which is of course not an
> option.
> >>
> >> Therefore, from the first look it seems that this rounding may be
> >> safely removed unless I've missed something.
> > Could you help to refer to the data sheet of 'Hash Filter', 'Receive
> > Queue Regions', it is said that '1, 2, 4, 8, 16, 32, 64' are the supported queue
> regions.
> > Yes, we should support more than 64 queues per port, but for rss, it
> > should be one of '1, 2, 4, 8, 16, 32, 64'.
> 
> "The VSIs support 8 regions of receive queues that are aimed mainly for the TCs.
> The TC regions are defined per VSI by the VSIQF_TCREGION register. The region
> sizes (defined by the TC_SIZE fields) can be any of the following value: 1, 2, 4, 8,
> 16, 32, 64 as long as the total number of queues do not exceed the VSI allocation.
> These regions starts at the offset defined by the TC_OFFSET parameter.
> According to the region size, the 'n' LS bits of the Queue Index from the LUT are
> enabled."
> 
> I think the above says that the region sizes may only be one of the mentioned
> values.
> 
> AFAIU this doesn't mean that the number or RSS queues has to be the same
> - it may not exceed it.
> 
> Just like it's stated in the "Outcome Queue Index" definition the final mapping to
> the PF index space is done using the VSILAN_QTABLE or VSILAN_QBASE registers
> (a.k.a. RSS indirection table).
> 
> For instance if u have a region of size 8 u may configure 3 RSS queues by setting
> the following RSS table:
> 0,1,2,0,1,2,0,1
I tend to agree with you. Anyway, I am working on supporting more queues per port than 64,
and I will take this into account. If not other strong reasons, I will change it. Thank you very much!

Regards,
Helin

> 
> >
> > Thanks,
> > Helin
> >
> >> Pls., comment.
> >>
> >> thanks,
> >> vlad
> >>
> >>>>>> I configure reta by my own using all of the queues everything
> >>>>>> seams to be working. To add insult to injury I do not get any
> >>>>>> errors during configuration some queues just do not receive any traffic.
> >>>>>>
> >>>>>> The second problem is that for some reason i40e does not use 40
> >>>>>> byte toeplitz hash key like any other driver, but it expects the
> >>>>>> key to be 52 bytes. And it would have being fine (if we ignore
> >>>>>> the fact that it contradicts MS spec), but how my high level code
> >>>>>> suppose to know
> >>>> that?
> >>> Actually a rss_key_len was introduced in struct rte_eth_rss_conf
> >>> recently. So the length should be indicated clearly. But I found the
> >>> annotations of that structure should have been reworked. I will try
> >>> to rework it
> >> with clear descriptions.
> >>>>>> And again, device configuration does not fail when wrong key
> >>>>>> length is provided, it just uses some other key. Guys this kind
> >>>>>> of error handling is completely unacceptable.
> >>> If less length of key is provided, it will not be used at all, the
> >>> default key will be
> >> used.
> >>> So there is no issue as you said. But we need to add more clear
> >>> description for the structure of rte_eth_rss_conf.
> >>>
> >>> Thank you very much for the good comments!
> >>>
> >>> Regards,
> >>> Helin
> >>>
> >>>>>> The last one is more of a question. Why interface to change RSS
> >>>>>> hash function (XOR or toeplitz) is part of a filter configuration
> >>>>>> and not rss config?
> >>>>>>
> >>>>>> --
> >>>>>> 			Gleb.
> >>>>> --
> >>>>> 			Gleb.
> >>>> --
> >>>> 			Gleb.

  reply	other threads:[~2015-08-24 18:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-16 13:36 Gleb Natapov
2015-02-19 14:50 ` Gleb Natapov
2015-03-02 12:56   ` Gleb Natapov
2015-03-05  5:56     ` Zhang, Helin
2015-03-05  6:39       ` Gleb Natapov
2015-03-05  6:56         ` Zhang, Helin
2015-04-28  9:21           ` Gleb Natapov
2015-04-28 14:46             ` Zhang, Helin
2015-08-24 11:13       ` Vlad Zolotarov
2015-08-24 11:40         ` Vlad Zolotarov
2015-08-24 17:51         ` Zhang, Helin
2015-08-24 18:26           ` Vlad Zolotarov
2015-08-24 18:54             ` Zhang, Helin [this message]
2015-08-24 18:58               ` Vladislav Zolotarov

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=F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E5C7D@SHSMSX104.ccr.corp.intel.com \
    --to=helin.zhang@intel.com \
    --cc=dev@dpdk.org \
    --cc=gleb@cloudius-systems.com \
    --cc=vladz@cloudius-systems.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).