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 E7ACC41E0A; Tue, 7 Mar 2023 20:32:44 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C7A0340ED6; Tue, 7 Mar 2023 20:32:44 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 068E24067B for ; Tue, 7 Mar 2023 20:32:43 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B354C113E; Tue, 7 Mar 2023 11:33:26 -0800 (PST) Received: from ampere-altra-2-1.usa.Arm.com (ampere-altra-2-1.usa.arm.com [10.118.91.158]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3044F3F71A; Tue, 7 Mar 2023 11:32:43 -0800 (PST) From: Kamalakshitha Aligeri To: Yuying.Zhang@intel.com, beilei.xing@intel.com, leyi.rong@intel.com, ruifeng.wang@arm.com, feifei.wang2@arm.com Cc: nd@arm.com, dev@dpdk.org Subject: [PATCH] net/i40e: avx512 fast-free path bug fix Date: Tue, 7 Mar 2023 19:32:21 +0000 Message-Id: <20230307193221.5365-1-kamalakshitha.aligeri@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 In i40e_tx_free_bufs_avx512 fast-free path, when cache is NULL, non fast-free path is being executed. Fixed the bug by calling rte_mempool_generic_put API that handles the cache==NULL case. Fixes: 5171b4ee6b6b ("net/i40e: optimize Tx by using AVX512") Cc: leyi.rong@intel.com Cc: stable@dpdk.org Signed-off-by: Kamalakshitha Aligeri Reviewed-by: Ruifeng Wang Reviewed-by: Feifei Wang --- .mailmap | 1 + drivers/net/i40e/i40e_rxtx_vec_avx512.c | 12 ++++-------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.mailmap b/.mailmap index a9f4f28fba..2581d0efe7 100644 --- a/.mailmap +++ b/.mailmap @@ -677,6 +677,7 @@ Kai Ji Kaiwen Deng Kalesh AP Kamalakannan R +Kamalakshitha Aligeri Kamil Bednarczyk Kamil Chalupnik Kamil Rytarowski diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c index d3c7bfd121..ad0893324d 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c @@ -783,16 +783,13 @@ i40e_tx_free_bufs_avx512(struct i40e_tx_queue *txq) struct rte_mempool_cache *cache = rte_mempool_default_cache(mp, rte_lcore_id()); - if (!cache || cache->len == 0) - goto normal; - - cache_objs = &cache->objs[cache->len]; - - if (n > RTE_MEMPOOL_CACHE_MAX_SIZE) { - rte_mempool_ops_enqueue_bulk(mp, (void *)txep, n); + if (!cache || n > RTE_MEMPOOL_CACHE_MAX_SIZE) { + rte_mempool_generic_put(mp, (void *)txep, n, cache); goto done; } + cache_objs = &cache->objs[cache->len]; + /* The cache follows the following algorithm * 1. Add the objects to the cache * 2. Anything greater than the cache min value (if it @@ -824,7 +821,6 @@ i40e_tx_free_bufs_avx512(struct i40e_tx_queue *txq) goto done; } -normal: m = rte_pktmbuf_prefree_seg(txep[0].mbuf); if (likely(m)) { free[0] = m; -- 2.25.1