From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E326DA034C; Tue, 18 Aug 2020 03:43:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BCB2F1C032; Tue, 18 Aug 2020 03:43:43 +0200 (CEST) Received: from huawei.com (szxga04-in.huawei.com [45.249.212.190]) by dpdk.org (Postfix) with ESMTP id DD1341C031 for ; Tue, 18 Aug 2020 03:43:42 +0200 (CEST) Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 14648A3FE386383E8B1B; Tue, 18 Aug 2020 09:43:39 +0800 (CST) Received: from [127.0.0.1] (10.67.103.128) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 18 Aug 2020 09:43:28 +0800 From: "humin (Q)" To: , , Linuxarm , , , "liudongdong (C)" , "Zhouchang (Forest)" , "lihuisong (C)" , "Huwei (Xavier)" References: Message-ID: <35618c10-5c99-110d-6857-52ad581fcd43@huawei.com> Date: Tue, 18 Aug 2020 09:43:24 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.103.128] X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [RFC]lib/ethdev: fix data type in tc_rxq and tc_txq X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Dear all: Are there any suggestions for this patch? 在 2020/8/7 20:33, humin (Q) 写道: > Currently, base and nb_queue in the tc_rxq and tc_txq information > of queue and TC mapping on both TX and RX paths are uint8_t. > The structure is as follows: > > struct rte_eth_dcb_tc_queue_mapping { >     /** rx queues assigned to tc per Pool */ >     struct { >         uint8_t base; >         uint8_t nb_queue; >     } tc_rxq[ETH_MAX_VMDQ_POOL][ETH_DCB_NUM_TCS]; >     /** rx queues assigned to tc per Pool */ >     struct { >         uint8_t base; >         uint8_t nb_queue; >     } tc_txq[ETH_MAX_VMDQ_POOL][ETH_DCB_NUM_TCS]; > }; > > However, these datas will be truncated when queue number under a TC > is greater than 256. So it is necessay for data type of base and > nb_queue to change from uint8_t to uint16_t. > > > [RFC]lib/ethdev: fix rx/tx queue stats mapping API > > Currently, only statistics of rx/tx queues with queue_id less than > RTE_ETHDEV_QUEUE_STAT_CNTRS can be displayed. If there is a certain > application scenario that it needs to use 256 or more than 256 queues > and display all statistics of rx/tx queue. At this moment, we have to > change the macro to be equaled to the queue number. > > However, modifying the macro to be greater than 256 will trigger > many errors and warnings from test-pmd, PMD driver and librte_ethdev > during compiling dpdk project. But it is possible and permited that > rx/tx queue number is greater than 256 and all statistics of rx/tx > queue need to be displayed. In addition, the data type of rx/tx queue > number in rte_eth_dev_configure API is 'uint16_t'. So It is unreasonable > to use the 'uint8_t' type for variables that control which per-queue > statistics can be displayed. > > In these modifications, related API in /lib/librte_ethdev/rte_ethdev.c > is as follows: > static int > -set_queue_stats_mapping(uint16_t port_id, uint16_t queue_id, uint8_t > stat_idx, > +set_queue_stats_mapping(uint16_t port_id, uint16_t queue_id, uint16_t > stat_idx, >                 uint8_t is_rx) > int >  rte_eth_dev_set_tx_queue_stats_mapping(uint16_t port_id, uint16_t > tx_queue_id, > -               uint8_t stat_idx) > +               uint16_t stat_idx) > > int >  rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id, uint16_t > rx_queue_id, > -               uint8_t stat_idx) > +               uint16_t stat_idx)