DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: oulijun <oulijun@huawei.com>,
	wenzhuo.lu@intel.com, beilei.xing@intel.com,
	adrien.mazarguil@6wind.com
Cc: dev@dpdk.org, linuxarm@huawei.com,
	Ophir Munk <ophirmu@nvidia.com>, Ori Kam <orika@nvidia.com>
Subject: Re: [dpdk-dev] [PATCH v5] app/testpmd: fix the default RSS key configuration
Date: Thu, 15 Oct 2020 17:05:02 +0100	[thread overview]
Message-ID: <fd6072d5-5be6-5d75-7933-02ea93ba2318@intel.com> (raw)
In-Reply-To: <8c543941-e881-aa88-b52a-a70bfe8f6fcf@intel.com>

On 10/15/2020 3:43 PM, Ferruh Yigit wrote:
> On 10/15/2020 3:04 PM, oulijun wrote:
>>
>>
>> 在 2020/10/15 21:52, Ferruh Yigit 写道:
>>> On 10/15/2020 1:41 PM, Lijun Ou wrote:
>>>> When start the testpmd, the pmd driver initializes the RSS
>>>> configuration. Generally, the recommended RSS hash key is
>>>> used as the default key in the driver. In addition, the
>>>> default key is different from the default RSS flow in testpmd
>>>> without specifying RSS hash key. So. if you do not specify
>>>> the RSS key when creating an RSS rule, the testpmd uses the
>>>> default key as the default RSS key of the RSS rule. As a result,
>>>> you may mistakenly consider that the RSS key in use is the valid
>>>> default key of the NIC, actually, the key and the valid default
>>>> key of the NIC are two values.
>>>>
>>>> Consider the follow usage with testpmd:
>>>> 1. first, startup testpmd:
>>>> testpmd> show port 0 rss-hash key
>>>> RSS functions:
>>>>    all ipv4-frag ipv4-other ipv6-frag ipv6-other ip
>>>> RSS key:
>>>> -6D5A56DA255B0EC24167253D43A38FB0D0CA2BCBAE7B30B477CB2DA38030F
>>>> -20C6A42B73BBEAC01FA
>>>> 2. create a rss rule
>>>> testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss \
>>>> types ipv4-udp end queues end / end
>>>>
>>>> 3. show rss-hash key
>>>> testpmd> show port 0 rss-hash key
>>>> RSS functions:
>>>>    all ipv4-udp udp
>>>> RSS key:
>>>> -74657374706D6427732064656661756C74205253532068617368206B65792C206F
>>>> -76657272696465
>>>>
>>>> In order to solve the above problems, it use the NIC valid default
>>>> RSS key instead of the testpmd dummy RSS key in the flow configuration
>>>> when the RSS key is not specified in the flow rule. If the NIC RSS key
>>>> is invalid, it will use testpmd dummy RSS key as the default key.
>>>>
>>>> Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Lijun Ou <oulijun@huawei.com>
>>>> Reviewed-by: Phil Yang <phil.yang@arm.com>
>>>> ---
>>>> V4->V5:
>>>> -rewrite the commit log
>>>> -add reviewed-by
>>>
>>> Hi Lijun,
>>>
>>> There were multiple other comments, it seems they are not addressed but only 
>>> updated the commit log, can you please check comments to prev versions.
>>>
>>> Before going into the details, my question was what happens if default key 
>>> not provided at all?
>>> It seems this has been already tried by Ophir [1], later reverted back [2] 
>>> bringing the initial issue back.
>>>
>>> According commit, the reason of revert is to support following command:
>>> "flow create 0 <pattern> actions rss queues 0 1 end key_len 40 / end"
>>>
>>> @Ophir, @Lijun,
>>> Can we ignore the 'key_len' if the 'key' is not supported and solve current 
>>> issue as initially intended ([1])?
>>>
>> Hi, Ferruh
>>    I have discussed with Phil Yang about the problem in [1]. I think there may 
>> be other problems with the idea and there is no better solution. and we need 
>> to remove key_len definition from rte_rss_conf structure. They don't have a 
>> plan. And [1] was eventually reverted.
>>
> 
> Why ignoring 'key_len' (set it to zero) when there is no 'key' provided doesn't 
> work?
> 

What do you think [1] + following update, will it work?

  diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
  index ee4f3464fe..e7789c87b3 100644
  --- a/lib/librte_ethdev/rte_flow.c
  +++ b/lib/librte_ethdev/rte_flow.c
  @@ -535,7 +535,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
                             }),
                             size > sizeof(*dst.rss) ? sizeof(*dst.rss) : size);
                  off = sizeof(*dst.rss);
  -               if (src.rss->key_len) {
  +               if (src.rss->key_len && src.rss->key) {
                          off = RTE_ALIGN_CEIL(off, sizeof(*dst.rss->key));
                          tmp = sizeof(*src.rss->key) * src.rss->key_len;
                          if (size >= off + tmp)

>> Thanks
>> Lijun Ou
>>>
>>> [1] https://git.dpdk.org/dpdk/commit/?id=a4391f8bae8
>>>
>>> [2] https://git.dpdk.org/dpdk/commit/?id=f3698c3d09a
>>> .
>>>
> 


  reply	other threads:[~2020-10-15 16:05 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-10  1:51 [dpdk-dev] [PATCH v3] " Lijun Ou
2020-09-22  9:51 ` Phil Yang
2020-09-22 13:50   ` oulijun
2020-09-22 15:44     ` Phil Yang
2020-09-24 13:45 ` [dpdk-dev] [PATCH v4] RSS key use with testpmd Lijun Ou
2020-09-24 13:45   ` [dpdk-dev] [PATCH v4] app/testpmd: fix the default RSS key configuration Lijun Ou
2020-09-29 15:35     ` Phil Yang
2020-09-30 12:57     ` Ferruh Yigit
2020-10-09 11:55       ` oulijun
2020-10-09 18:27         ` Ferruh Yigit
2020-10-09 18:54           ` Ferruh Yigit
2020-09-30 13:36     ` Ferruh Yigit
2020-10-09 11:59       ` oulijun
2020-10-09 18:36         ` Ferruh Yigit
2020-10-15 12:41     ` [dpdk-dev] [PATCH v5] " Lijun Ou
2020-10-15 13:52       ` Ferruh Yigit
2020-10-15 14:04         ` oulijun
2020-10-15 14:43           ` Ferruh Yigit
2020-10-15 16:05             ` Ferruh Yigit [this message]
2020-10-15 23:21               ` Ophir Munk
2020-10-15 23:53                 ` Ferruh Yigit
2020-10-16  0:14                   ` Ajit Khaparde
2020-10-16  6:46                   ` Ophir Munk
2020-10-16 10:05                     ` oulijun
2020-10-16 15:13                       ` Ophir Munk
2020-10-16 10:04                   ` oulijun
2020-10-16 10:57                     ` Ferruh Yigit
2020-10-16 14:59                       ` Ophir Munk
2020-10-20  9:00                       ` oulijun
2020-10-20 10:02                         ` Ferruh Yigit
2020-10-20 13:35                           ` oulijun
2020-10-20 14:34                             ` Ferruh Yigit
2020-10-21  8:19                               ` oulijun
2020-10-21  9:38                                 ` Ferruh Yigit
2020-10-21 10:07                                   ` oulijun
     [not found]       ` <20201015195637.26476-1-robot@bytheb.org>
2020-10-16  9:39         ` [dpdk-dev] |WARNING| pw80899 " oulijun
2020-10-16  9:41           ` David Marchand
2020-09-30 13:17   ` [dpdk-dev] [PATCH v4] RSS key use with testpmd Ferruh Yigit
2020-10-09 12:09     ` oulijun
2020-10-09 18:52       ` Ferruh Yigit
2020-10-10  3:07         ` Phil Yang
2020-10-14  6:15         ` oulijun
2020-10-14  8:41           ` Ferruh Yigit
2020-10-15 12:30 [dpdk-dev] [PATCH v5] app/testpmd: fix the default RSS key configuration Lijun Ou

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=fd6072d5-5be6-5d75-7933-02ea93ba2318@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=adrien.mazarguil@6wind.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=linuxarm@huawei.com \
    --cc=ophirmu@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=oulijun@huawei.com \
    --cc=wenzhuo.lu@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).