From patchwork Thu Nov 2 12:16:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "lihuisong (C)" X-Patchwork-Id: 133784 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D43A54326E; Thu, 2 Nov 2023 13:16:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 43BB341101; Thu, 2 Nov 2023 13:15:56 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id C883640282 for ; Thu, 2 Nov 2023 13:15:53 +0100 (CET) Received: from kwepemm000004.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4SLjWk6GPTzvQHP; Thu, 2 Nov 2023 20:15:46 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by kwepemm000004.china.huawei.com (7.193.23.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 2 Nov 2023 20:15:48 +0800 From: Huisong Li To: , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko CC: , Subject: [PATCH v4 1/3] ethdev: introduce maximum Rx buffer size Date: Thu, 2 Nov 2023 20:16:06 +0800 Message-ID: <20231102121608.10170-2-lihuisong@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20231102121608.10170-1-lihuisong@huawei.com> References: <20230808040234.12947-1-lihuisong@huawei.com> <20231102121608.10170-1-lihuisong@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemm000004.china.huawei.com (7.193.23.18) 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 The "min_rx_bufsize" in struct rte_eth_dev_info stands for the minimum Rx buffer size supported by hardware. Actually, some engines also have the maximum Rx buffer specification, like, hns3, i40e and so on. If mbuf data room size in mempool is greater then the maximum Rx buffer size per descriptor supported by HW, the data size application used in each mbuf is just as much as the maximum Rx buffer size instead of the whole data room size. So introduce maximum Rx buffer size which is not enforced just to report user to avoid memory waste. In addition, fix the comment for the "min_rx_bufsize" to make it be more specific. Signed-off-by: Huisong Li Acked-by: Chengwen Feng Acked-by: Morten Brørup --- doc/guides/rel_notes/release_23_11.rst | 7 +++++++ lib/ethdev/rte_ethdev.c | 7 +++++++ lib/ethdev/rte_ethdev.h | 10 +++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 95db98d098..d4f7d5b266 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -122,6 +122,13 @@ New Features a group's miss actions, which are the actions to be performed on packets that didn't match any of the flow rules in the group. +* **Added maximum Rx buffer size to report.** + + Introduced the ``max_rx_bufsize`` field representing the maximum Rx + buffer size per descriptor supported by HW in structure ``rte_eth_dev_info`` + to report user and to avoid wasting space of mempool. + Its value is UINT32_MAX if driver doesn't report it. + * **Updated Amazon ena (Elastic Network Adapter) net driver.** * Upgraded ENA HAL to latest version. diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index af23ac0ad0..03539bb6c3 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -2112,6 +2112,7 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, struct rte_eth_dev *dev; struct rte_eth_dev_info dev_info; struct rte_eth_rxconf local_conf; + uint32_t vld_bufsize; RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); dev = &rte_eth_devices[port_id]; @@ -2158,6 +2159,11 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, return ret; mbp_buf_size = rte_pktmbuf_data_room_size(mp); + vld_bufsize = mbp_buf_size - RTE_PKTMBUF_HEADROOM; + if (vld_bufsize > dev_info.max_rx_bufsize) + RTE_ETHDEV_LOG(INFO, + "For port_id=%u the max data size per mbuf in Rx is %u instead of the whole data room(%u).\n", + port_id, dev_info.max_rx_bufsize, vld_bufsize); } else if (rx_conf != NULL && rx_conf->rx_nseg > 0) { const struct rte_eth_rxseg_split *rx_seg; uint16_t n_seg; @@ -3757,6 +3763,7 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info) dev_info->min_mtu = RTE_ETHER_MIN_LEN - RTE_ETHER_HDR_LEN - RTE_ETHER_CRC_LEN; dev_info->max_mtu = UINT16_MAX; + dev_info->max_rx_bufsize = UINT32_MAX; if (*dev->dev_ops->dev_infos_get == NULL) return -ENOTSUP; diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index a53dd5a1ef..7133b73d26 100644 --- a/lib/ethdev/rte_ethdev.h +++ b/lib/ethdev/rte_ethdev.h @@ -1723,7 +1723,15 @@ struct rte_eth_dev_info { uint16_t min_mtu; /**< Minimum MTU allowed */ uint16_t max_mtu; /**< Maximum MTU allowed */ const uint32_t *dev_flags; /**< Device flags */ - uint32_t min_rx_bufsize; /**< Minimum size of Rx buffer. */ + /** Minimum Rx buffer size per descriptor supported by HW. */ + uint32_t min_rx_bufsize; + /** + * Maximum Rx buffer size per descriptor supported by HW. + * The value is not enforced, information only to application to + * optimize mbuf size. Its value is UINT32_MAX when not specified + * by the driver. + */ + uint32_t max_rx_bufsize; uint32_t max_rx_pktlen; /**< Maximum configurable length of Rx pkt. */ /** Maximum configurable size of LRO aggregated packet. */ uint32_t max_lro_pkt_size; From patchwork Thu Nov 2 12:16:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "lihuisong (C)" X-Patchwork-Id: 133785 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3D1B94326E; Thu, 2 Nov 2023 13:16:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 56CA141143; Thu, 2 Nov 2023 13:15:57 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 316E040A76 for ; Thu, 2 Nov 2023 13:15:53 +0100 (CET) Received: from kwepemm000004.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4SLjWl3DlXzvQSg; Thu, 2 Nov 2023 20:15:47 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by kwepemm000004.china.huawei.com (7.193.23.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 2 Nov 2023 20:15:49 +0800 From: Huisong Li To: , Aman Singh , Yuying Zhang CC: , , , , Subject: [PATCH v4 2/3] app/testpmd: add maximum Rx buffer size display Date: Thu, 2 Nov 2023 20:16:07 +0800 Message-ID: <20231102121608.10170-3-lihuisong@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20231102121608.10170-1-lihuisong@huawei.com> References: <20230808040234.12947-1-lihuisong@huawei.com> <20231102121608.10170-1-lihuisong@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemm000004.china.huawei.com (7.193.23.18) 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 Add maximum Rx buffer size display. Signed-off-by: Huisong Li Acked-by: Chengwen Feng --- app/test-pmd/config.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index b9fdb7e8f1..2ac6f15773 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -881,6 +881,8 @@ port_infos_display(portid_t port_id) } printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize); + if (dev_info.max_rx_bufsize != UINT32_MAX) + printf("Maximum size of RX buffer: %u\n", dev_info.max_rx_bufsize); printf("Maximum configurable length of RX packet: %u\n", dev_info.max_rx_pktlen); printf("Maximum configurable size of LRO aggregated packet: %u\n", From patchwork Thu Nov 2 12:16:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "lihuisong (C)" X-Patchwork-Id: 133783 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A951B4326E; Thu, 2 Nov 2023 13:16:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D63F40E78; Thu, 2 Nov 2023 13:15:55 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 9688840262 for ; Thu, 2 Nov 2023 13:15:53 +0100 (CET) Received: from kwepemm000004.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4SLjWm00rXzvQTN; Thu, 2 Nov 2023 20:15:47 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by kwepemm000004.china.huawei.com (7.193.23.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 2 Nov 2023 20:15:50 +0800 From: Huisong Li To: , Jie Hai , Yisen Zhuang CC: , , , , Subject: [PATCH v4 3/3] net/hns3: report maximum buffer size Date: Thu, 2 Nov 2023 20:16:08 +0800 Message-ID: <20231102121608.10170-4-lihuisong@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20231102121608.10170-1-lihuisong@huawei.com> References: <20230808040234.12947-1-lihuisong@huawei.com> <20231102121608.10170-1-lihuisong@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemm000004.china.huawei.com (7.193.23.18) 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 This patch reports the maximum buffer size hardware supported. Signed-off-by: Huisong Li Acked-by: Chengwen Feng --- drivers/net/hns3/hns3_common.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c index 9327adbdc1..4b0e38cf67 100644 --- a/drivers/net/hns3/hns3_common.c +++ b/drivers/net/hns3/hns3_common.c @@ -59,6 +59,7 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) info->max_tx_queues = hw->tqps_num; info->max_rx_pktlen = HNS3_MAX_FRAME_LEN; /* CRC included */ info->min_rx_bufsize = HNS3_MIN_BD_BUF_SIZE; + info->max_rx_bufsize = HNS3_MAX_BD_BUF_SIZE; info->max_mtu = info->max_rx_pktlen - HNS3_ETH_OVERHEAD; info->max_lro_pkt_size = HNS3_MAX_LRO_SIZE; info->rx_offload_capa = (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM |