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 B7BF2A0A0E; Wed, 28 Apr 2021 08:41:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1D82E412A2; Wed, 28 Apr 2021 08:40:57 +0200 (CEST) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by mails.dpdk.org (Postfix) with ESMTP id AD3A640697 for ; Wed, 28 Apr 2021 08:40:46 +0200 (CEST) Received: from DGGEMS406-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4FVTTD0pvmzPty6 for ; Wed, 28 Apr 2021 14:37:36 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS406-HUB.china.huawei.com (10.3.19.206) with Microsoft SMTP Server id 14.3.498.0; Wed, 28 Apr 2021 14:40:40 +0800 From: Huisong Li To: CC: , Date: Wed, 28 Apr 2021 14:40:40 +0800 Message-ID: <1619592046-22269-2-git-send-email-lihuisong@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1619592046-22269-1-git-send-email-lihuisong@huawei.com> References: <1614939741-63927-1-git-send-email-oulijun@huawei.com> <1619592046-22269-1-git-send-email-lihuisong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH V4 1/7] app/testpmd: fix forward lcores number when DCB test 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 Sender: "dev" For the DCB forwarding test, each core is assigned to each traffic class. Number of forwarding cores for DCB test must be equal or less than number of total TC. Otherwise, the following problems may occur: 1/ Redundant polling threads will be created when forwarding cores number is greater than total TC number. 2/ Two cores would try to use a same queue on a port when Rx/Tx queue number is greater than the used TC number, which is not allowed. Fixes: 900550de04a7 ("app/testpmd: add dcb support") Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings") Cc: stable@dpdk.org Signed-off-by: Huisong Li Signed-off-by: Lijun Ou --- app/test-pmd/config.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index a4445a7..39c0b80 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -3008,6 +3008,21 @@ rss_fwd_config_setup(void) } } +static uint16_t +get_fwd_port_total_tc_num(void) +{ + struct rte_eth_dcb_info dcb_info; + uint16_t total_tc_num = 0; + unsigned int i; + + for (i = 0; i < nb_fwd_ports; i++) { + (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[i], &dcb_info); + total_tc_num += dcb_info.nb_tcs; + } + + return total_tc_num; +} + /** * For the DCB forwarding test, each core is assigned on each traffic class. * @@ -3027,12 +3042,16 @@ dcb_fwd_config_setup(void) lcoreid_t lc_id; uint16_t nb_rx_queue, nb_tx_queue; uint16_t i, j, k, sm_id = 0; + uint16_t total_tc_num; uint8_t tc = 0; cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores; cur_fwd_config.nb_fwd_ports = nb_fwd_ports; cur_fwd_config.nb_fwd_streams = (streamid_t) (nb_rxq * cur_fwd_config.nb_fwd_ports); + total_tc_num = get_fwd_port_total_tc_num(); + if (cur_fwd_config.nb_fwd_lcores > total_tc_num) + cur_fwd_config.nb_fwd_lcores = total_tc_num; /* reinitialize forwarding streams */ init_fwd_streams(); -- 2.7.4