From: Vladislav Zolotarov <vladz@cloudius-systems.com>
To: Helin Zhang <helin.zhang@intel.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] i40e and RSS woes
Date: Mon, 24 Aug 2015 21:58:20 +0300 [thread overview]
Message-ID: <CAOYyTHav9XJwodovC+eUo4H15kcXZTQhHRYBY-L85wuiAV2=qw@mail.gmail.com> (raw)
In-Reply-To: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E5C7D@SHSMSX104.ccr.corp.intel.com>
On Aug 24, 2015 21:54, "Zhang, Helin" <helin.zhang@intel.com> wrote:
>
>
>
> > -----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!
Great! Thanks a lot, Helin.
>
> 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.
>
prev parent reply other threads:[~2015-08-24 18:58 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
2015-08-24 18:58 ` Vladislav Zolotarov [this message]
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='CAOYyTHav9XJwodovC+eUo4H15kcXZTQhHRYBY-L85wuiAV2=qw@mail.gmail.com' \
--to=vladz@cloudius-systems.com \
--cc=dev@dpdk.org \
--cc=helin.zhang@intel.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).