From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 82FA4A04A2; Thu, 3 Mar 2022 03:48:53 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6BF524068B; Thu, 3 Mar 2022 03:48:53 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 6CEEB40141 for ; Thu, 3 Mar 2022 03:48:52 +0100 (CET) Received: from kwepemi100007.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4K8Fl90R6Qzdfd2; Thu, 3 Mar 2022 10:47:33 +0800 (CST) Received: from kwepemm600004.china.huawei.com (7.193.23.242) by kwepemi100007.china.huawei.com (7.221.188.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Thu, 3 Mar 2022 10:48:50 +0800 Received: from [10.67.103.231] (10.67.103.231) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Thu, 3 Mar 2022 10:48:50 +0800 Message-ID: Date: Thu, 3 Mar 2022 10:48:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH 2/6] net/hns3: fix inconsistent enabled RSS behavior To: Stephen Hemminger , Thomas Monjalon CC: Ferruh Yigit , "Min Hu (Connor)" , "dev@dpdk.org" , Andrew Rybchenko , Qi Zhang , Ori Kam , Olivier Matz , Ajit Khaparde , "jerinj@marvell.com" , Slava Ovsiienko , huangdaode References: <20220228032146.37407-1-humin29@huawei.com> <5b829b45-220b-daa2-19e4-3b3fc746d152@huawei.com> <3844855.QkHrqEjB74@thomas> <20220302085919.4ec08fb5@hermes.local> From: "lihuisong (C)" In-Reply-To: <20220302085919.4ec08fb5@hermes.local> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.103.231] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Thanks, Stephen. 在 2022/3/3 0:59, Stephen Hemminger 写道: > On Wed, 02 Mar 2022 15:46:37 +0100 > Thomas Monjalon wrote: > >> 02/03/2022 15:07, Ori Kam: >>> From: lihuisong (C) >>>> 在 2022/3/1 0:42, Ferruh Yigit 写道: >>>>> On 2/28/2022 3:21 AM, Min Hu (Connor) wrote: >>>>>> From: Huisong Li >>>>>> >>>>>> RSS will not be enabled if the RTE_ETH_MQ_RX_RSS_FLAG isn't be set in >>>>>> dev_configure phase. However, if this flag isn't set, RSS can be enabled >>>>>> through the ethdev ops and rte_flow API. This behavior is contrary to >>>>>> each >>>>>> other. >>>>>> >>>>>> Fixes: c37ca66f2b27 ("net/hns3: support RSS") >>>>>> Cc: stable@dpdk.org >>>>>> >>>>>> Signed-off-by: Huisong Li >>>>> >>>>> Hi Huisong, Connor, >>>>> >>>>> Let's get a little more feedback for this patch, cc'ed more people. >>>>> >>>>> >>>>> To enable RSS, multi queue mode should be set to >>>>> 'RTE_ETH_MQ_RX_RSS_FLAG'. >>>>> >>>>> But I wonder if it is required to configure RSS via flow API, >>>> I do not know the original purpose of adding the RSS configuration in >>>> flow API. >>>> >>> The purpose is simple, this allow to create RSS per rule and not a global one. >>> For example create RSS that sends TCP to some queues while othe RSS will send >>> UDP traffic to different queues. >>> >>>> However, as far as I know, the hash algorithm can be configured via this >>>> API, >>>> >>>> but not via ethdev ops API. >>>> >>>>> and if other PMDs check this configuration for flow API? >>>> Some PMDs already have similar check in RSS releated ops or rte_flow API. >>>> >>>> For example, hinic, axbge, bnxt, cnxk, otx2, and ena. >> I suggest removing these checks. >> >>> From my view point those are two different settings. >>> The RTE_ETH_MQ_RX_RSS_FLAG is global per port while >>> rte_flow is per rule. >>> >>> I think, that if a PMD needs this flag, in order to enable it also for rte_flow then >>> it should be documented in the release note of the PMD. >>> It is a valid use case that the default traffic will not have RSS and only rules created by >>> rte_flow will have the RSS, for matching traffc. >> I think RTE_ETH_MQ_RX_RSS_FLAG should not be required by any PMD >> for rte_flow RSS rules. >> >> > Agreed. > > The ideal state around RSS would be: > - global settings affect the default started queues when device is started. > if RSS is enabled and 4 queues are started, then RSS would happen for received > packets across those 4 queues. > - when adding new flow related rx: > - new queues could be started - BUT not part of original RSS How should I understand this? If do this, we have to increase queue numbers. > - new rte_flow rule can do RSS against the new flow: > example: > start queues 4,5,6,7 > rte_flow match TCP port 80 and process on queues 4,5,6,7 with RSS I think you have the same view as Ori. But some original RSS hash configuration has been overwritten by a new rule, such as redirection table. > > This is a mess today, most devices work differently and there is no reference software > implementation. In an ideal state, there would be a reference software implementation > that implements all of rte_flow, and all new hardware support would have to work the same > as the reference implementation. And there would be a full CI test suite around rte_flow. > .