All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: "Zhao1, Wei" <wei.zhao1@intel.com>
Cc: "Peng, Yuan" <yuan.peng@intel.com>, "dev@dpdk.org" <dev@dpdk.org>,
	"Xu, Qian Q" <qian.q.xu@intel.com>,
	"Liu, Yu Y" <yu.y.liu@intel.com>,
	"Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
	"Wu, Jingjing" <jingjing.wu@intel.com>
Subject: Re: [PATCH v6 07/16] ethdev: flatten RSS configuration in flow API
Date: Fri, 4 May 2018 11:44:37 +0200	[thread overview]
Message-ID: <20180504094437.GB20388@6wind.com> (raw)
In-Reply-To: <A2573D2ACFCADC41BB3BE09C6DE313CA07D1CDB5@PGSMSX101.gar.corp.intel.com>

On Fri, May 04, 2018 at 09:31:05AM +0000, Zhao1, Wei wrote:
> Hi,  Adrien Mazarguil
> 
> > -----Original Message-----
> > From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com]
> > Sent: Thursday, May 3, 2018 8:48 PM
> > To: Peng, Yuan <yuan.peng@intel.com>
> > Cc: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org; Xu, Qian Q
> > <qian.q.xu@intel.com>; Liu, Yu Y <yu.y.liu@intel.com>; Lu, Wenzhuo
> > <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
> > Subject: Re: [dpdk-dev] [PATCH v6 07/16] ethdev: flatten RSS configuration
> > in flow API
> > 
> > Hi Peng Yuan,
> > 
> > Apologies for the delay, I'll answer below to the entire thread.
> > 
> > On Sat, Apr 28, 2018 at 07:45:31AM +0000, Peng, Yuan wrote:
> > > Hi,Adrien Mazarguil
> > >
> > > There is a bug of queue region with 18.05-rc1 The test steps are as
> > > below:
> > > ./usertools/dpdk-devbind.py -b igb_uio 05:00.0
> > > ./x86_64-native-linuxapp-gcc/app/testpmd -c 1ffff -n 4 -- -i --rxq=16
> > > --txq=16
> > > testpmd> port config all rss all
> > > Configuration of RSS hash at ethernet port 0 failed with error (22): Invalid
> > argument.
> > 
> > I assume this issue is related rte_eth_dev_configure() which was recently
> > fixed [1], right?
> > 
> > [1] "ethdev: fix applications failure on configure"
> >     http://dpdk.org/ml/archives/dev/2018-May/099858.html
> > 
> > <snip>
> > > There is a bug present with 18.05-rci when I test the feature "Move
> > > RSS to rte_flow" in i40e NIC The test steps are as below:
> > > ./usertools/dpdk-devbind.py -b igb_uio 05:00.0 05:00.1
> > > ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x1fffe -n 4  -- -i
> > > --nb-cores=8 --rxq=8 --txq=8 --port-topology=chained
> > > testpmd> set fwd rxonly
> > > Set rxonly packet forwarding mode
> > > testpmd> set verbose 1
> > > Change verbose level from 0 to 1
> > > testpmd> start
> > > testpmd> flow create 0 ingress pattern end actions rss queues 0 4 7
> > > testpmd> end / end
> > > Caught error type 16 (specific action): cause: 0x7fff84e33658, RSS
> > > hash key too large
> > >
> > > The rss rule can be set successfully when I test it yesterday with older dpdk
> > version without this patch.
> > 
> > Regarding this issue, the testpmd flow command now requests hash key
> > length from the PMD by default [2] if left unspecified by user. This value is
> > taken from the "hash_key_size" field returned by rte_eth_dev_infos_get().
> > 
> > While most PMDs return 40 here, i40e returns:
> > 
> >  (I40E_PFQF_HKEY_MAX_INDEX + 1) * sizeof(uint32_t)
> >  /* that is, (12 + 1) * 4 => 52 */
> > 
> > Is this correct and really supported by i40e? Otherwise I'd suggest to fix the
> > PMD as it may also confuse applications other than testpmd.
> > 
> > Note that you should be able to revert to the old behavior with the PMD-
> > specific default key by specifying a "key_len 0" parameter to the RSS action.
> > 
> > [2] http://dpdk.org/browse/dpdk/tree/app/test-
> > pmd/cmdline_flow.c?id=v18.05-rc2#n2780
> 
> 
> This is the root cause for this issue, although i40 return :
> 
> 	dev_info->hash_key_size = (I40E_PFQF_HKEY_MAX_INDEX + 1) *
> 						sizeof(uint32_t);
> 
> that is 52 byte, but " RTE_DIM(rss_config->key)" , which is
> 
> 	uint8_t key[(I40E_VFQF_HKEY_MAX_INDEX > I40E_PFQF_HKEY_MAX_INDEX ?
> 		     I40E_VFQF_HKEY_MAX_INDEX : I40E_PFQF_HKEY_MAX_INDEX) + 1 *
> 		    sizeof(uint32_t)]; /* Hash key. */
> is not 52!!!
> 
> I think the code should be :
> 
> 	uint8_t key[(I40E_VFQF_HKEY_MAX_INDEX > I40E_PFQF_HKEY_MAX_INDEX ?
> 		     I40E_VFQF_HKEY_MAX_INDEX : I40E_PFQF_HKEY_MAX_INDEX + 1) *
> 		    sizeof(uint32_t)]; /* Hash key. */
> 
> If you agree and permit, I WILL commit a patch to fix this bug.
> Thank you!

Whoops, dumb mistake, nice catch. If you take care of it, please add:

Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")

> > <snip>
> > > There is another problem with ixgbe nic:
> > > ./usertools/dpdk-devbind.py -b igb_uio 07:00.0 07:00.1
> > > ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x1fffe -n 4  -- -i
> > > --nb-cores=8 --rxq=8 --txq=8 --disable-rss --port-topology=chained
> > > testpmd> flow create 0 ingress pattern end actions rss queues 5 6 7
> > > testpmd> end / end
> > > Caught error type 2 (flow rule (handle)): Failed to create flow.
> > > The rule setting command can be executed successfully with older dpdk
> > version.
> > >
> > > Could you help to check if there is a relationship between the bugs and this
> > patch?
> > 
> > Perhaps a similar issue since testpmd now provides default values for
> > unspecified fields of the RSS action, that is, a default hash key with a PMD-
> > returned default length and the global "rss_hf" value for types (here 0 due to
> > --disable-rss).
> > 
> > Try appending the following arguments to the RSS action:
> > 
> >  key_len 0 types ip udp end
> > 
> > If it works, it probably means the issue was always present, it just never
> > showed up due to the inability to validate RSS action parameters previously.
> > You should make sure ixgbe supports them.

No comment regarding ixgbe?

-- 
Adrien Mazarguil
6WIND

  reply	other threads:[~2018-05-04  9:44 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-04 15:56 [PATCH v1 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 01/16] ethdev: update ABI for flow API functions Adrien Mazarguil
2018-04-05 10:06   ` Thomas Monjalon
2018-04-05 12:44     ` Adrien Mazarguil
2018-04-05 13:36       ` Thomas Monjalon
2018-04-04 15:56 ` [PATCH v1 02/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 03/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 04/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 05/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 06/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 07/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 08/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 09/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 10/16] ethdev: add encap level " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 11/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-05  9:55   ` Nélio Laranjeiro
2018-04-05 12:02     ` Adrien Mazarguil
2018-04-05 14:20   ` Zhang, Qi Z
2018-04-05 14:39     ` Adrien Mazarguil
2018-04-06  4:59       ` Zhang, Qi Z
2018-04-04 15:56 ` [PATCH v1 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-05 12:24   ` Zhang, Qi Z
2018-04-06 13:25 ` [PATCH v2 00/15] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 01/15] ethdev: add error types to flow API Adrien Mazarguil
2018-04-07  9:15     ` Andrew Rybchenko
2018-04-07  9:18       ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 02/15] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-07  9:21     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 03/15] doc: remove flow API migration section Adrien Mazarguil
2018-04-07  9:22     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 04/15] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-07  9:23     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 05/15] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-06 15:06     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 06/15] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 07/15] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-07  9:05     ` Andrew Rybchenko
2018-04-09 14:42       ` Adrien Mazarguil
2018-04-11 13:21         ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 08/15] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-06 15:41     ` Andrew Rybchenko
2018-04-09 14:41       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 09/15] ethdev: add encap level " Adrien Mazarguil
2018-04-07  8:27     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 10/15] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-06 17:11     ` Andrew Rybchenko
2018-04-09 14:42       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 11/15] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 12/15] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-07  9:41     ` Andrew Rybchenko
2018-04-09 14:49       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 13/15] ethdev: rename physical port item " Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 14/15] ethdev: add physical port action to " Adrien Mazarguil
2018-04-07  9:51     ` Andrew Rybchenko
2018-04-09 15:00       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 15/15] ethdev: add port ID item and " Adrien Mazarguil
2018-04-10 16:36   ` [PATCH v3 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 06/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-11 13:06       ` Andrew Rybchenko
2018-04-10 16:36     ` [PATCH v3 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-11 12:40       ` Andrew Rybchenko
2018-04-10 16:36     ` [PATCH v3 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 10/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-11 12:45       ` Andrew Rybchenko
2018-04-10 16:36     ` [PATCH v3 11/16] ethdev: limit default VLAN TCI mask " Adrien Mazarguil
2018-04-11 12:48       ` Andrew Rybchenko
2018-04-10 16:37     ` [PATCH v3 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-10 16:37     ` [PATCH v3 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-10 16:37     ` [PATCH v3 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-11 12:57       ` Andrew Rybchenko
2018-04-10 16:37     ` [PATCH v3 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-11 13:00       ` Andrew Rybchenko
2018-04-10 16:37     ` [PATCH v3 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-11 13:02       ` Andrew Rybchenko
2018-04-16 16:22     ` [PATCH v4 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-17 19:37         ` Ferruh Yigit
2018-04-18  8:41           ` Adrien Mazarguil
2018-04-18  9:24             ` Ferruh Yigit
2018-04-19  9:48               ` Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-18 12:26         ` Andrew Rybchenko
2018-04-18 14:58           ` Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 06/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-17 20:18         ` Thomas Monjalon
2018-04-18  6:45           ` Nélio Laranjeiro
2018-04-16 16:22       ` [PATCH v4 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 10/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 11/16] ethdev: limit default VLAN TCI mask " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-17  9:08         ` Mohammad Abdul Awal
2018-04-16 16:23       ` [PATCH v4 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-19 10:16       ` [PATCH v5 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 06/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-23 15:05           ` Nélio Laranjeiro
2018-04-19 10:16         ` [PATCH v5 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 10/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 11/16] ethdev: limit default VLAN TCI mask " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-25 15:27         ` [PATCH v6 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 06/16] ethdev: fix C99 flexible arrays from flow API Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-28  3:46             ` Zhao1, Wei
2018-04-28  5:28               ` Peng, Yuan
2018-04-28  7:45                 ` Peng, Yuan
2018-05-03 12:48                   ` Adrien Mazarguil
2018-05-04  9:31                     ` Zhao1, Wei
2018-05-04  9:44                       ` Adrien Mazarguil [this message]
2018-05-07  7:42                         ` Peng, Yuan
2018-05-07  8:11                         ` Peng, Yuan
2018-05-07  8:16                         ` Zhao1, Wei
2018-04-25 15:27           ` [PATCH v6 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 10/16] ethdev: fix TPID handling in flow API Adrien Mazarguil
2018-04-25 16:10             ` Adrien Mazarguil
2018-04-25 16:15               ` Ferruh Yigit
2018-04-25 15:27           ` [PATCH v6 11/16] ethdev: fix default VLAN TCI mask " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 13/16] ethdev: fix behavior of VF/PF in " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-25 17:34           ` [PATCH v6 00/16] Flow API overhaul for switch offloads Ferruh Yigit

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=20180504094437.GB20388@6wind.com \
    --to=adrien.mazarguil@6wind.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=qian.q.xu@intel.com \
    --cc=wei.zhao1@intel.com \
    --cc=wenzhuo.lu@intel.com \
    --cc=yu.y.liu@intel.com \
    --cc=yuan.peng@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.