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 5E12446468 for ; Mon, 24 Mar 2025 17:17:58 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 579F840A71; Mon, 24 Mar 2025 17:17:58 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 2F43240A71 for ; Mon, 24 Mar 2025 17:17:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742833076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0+XtLiOewyF73k7kMLNU0oCrWaOqxuph9B/8oCwJt3Y=; b=Xz7l+vy7570umKWelOF8IyyO1pQtAY4id7MlEhluAAcEpwnPTR4AsEPnbXeKQZ+YWsgk88 CP8ddsemwBNC168XAwB/Rsz8ygGSoB6MUEgRTt9gsrVYi5MVXA7jEopOkz31cmwlIW130E VpnnIAW2RuMn66d4r4C+i/oCaR4q/GM= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-292-_5lxe8ylPbORMux-tP_PTQ-1; Mon, 24 Mar 2025 12:17:47 -0400 X-MC-Unique: _5lxe8ylPbORMux-tP_PTQ-1 X-Mimecast-MFC-AGG-ID: _5lxe8ylPbORMux-tP_PTQ_1742833066 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E831A180AF50; Mon, 24 Mar 2025 16:17:45 +0000 (UTC) Received: from rh.redhat.com (unknown [10.44.32.16]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 15FC030001A1; Mon, 24 Mar 2025 16:17:43 +0000 (UTC) From: Kevin Traynor To: Yang Ming Cc: Bruce Richardson , dpdk stable Subject: patch 'net/iavf: fix mbuf release in Arm multi-process' has been queued to stable release 24.11.2 Date: Mon, 24 Mar 2025 16:16:10 +0000 Message-ID: <20250324161731.63950-3-ktraynor@redhat.com> In-Reply-To: <20250324161731.63950-1-ktraynor@redhat.com> References: <20250324161731.63950-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: o-VnXDsKQjNAFpBGf7Ja0h4FsBDqJ3E9HEr_jeIK1pk_1742833066 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 24.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 03/28/25. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/427272a2a9571e244dadeb7433d5d4cfdabf8fc2 Thanks. Kevin --- >From 427272a2a9571e244dadeb7433d5d4cfdabf8fc2 Mon Sep 17 00:00:00 2001 From: Yang Ming Date: Fri, 7 Mar 2025 13:40:22 +0800 Subject: [PATCH] net/iavf: fix mbuf release in Arm multi-process [ upstream commit 289d1b2e348032543f9b823d2eaf3d0e0073af56 ] This patch addresses a bug related to mbuf release in the Arm architecture. The previous patch resolved the mbuf release issue in a multi-process environment but was only applicable to the x86 architecture, leaving Arm unaddressed. This patch extends the fix to include the Arm architecture, ensuring consistent behavior across both x86 and Arm platforms. Fixes: fced83c1229e ("net/iavf: fix mbuf release in multi-process") Signed-off-by: Yang Ming Acked-by: Bruce Richardson --- drivers/net/iavf/iavf_rxtx.c | 3 +++ drivers/net/iavf/iavf_rxtx.h | 2 ++ drivers/net/iavf/iavf_rxtx_vec_neon.c | 8 ++------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c index 98a1d3f69d..0ffb9762fe 100644 --- a/drivers/net/iavf/iavf_rxtx.c +++ b/drivers/net/iavf/iavf_rxtx.c @@ -412,4 +412,7 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = { [IAVF_REL_MBUFS_SSE_VEC].release_mbufs = iavf_rx_queue_release_mbufs_sse, #endif +#ifdef RTE_ARCH_ARM64 + [IAVF_REL_MBUFS_NEON_VEC].release_mbufs = iavf_rx_queue_release_mbufs_neon, +#endif }; diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h index 7b56076d32..ef8aab4e9d 100644 --- a/drivers/net/iavf/iavf_rxtx.h +++ b/drivers/net/iavf/iavf_rxtx.h @@ -449,4 +449,5 @@ enum iavf_rxtx_rel_mbufs_type { IAVF_REL_MBUFS_SSE_VEC = 1, IAVF_REL_MBUFS_AVX512_VEC = 2, + IAVF_REL_MBUFS_NEON_VEC = 3, }; @@ -774,4 +775,5 @@ void iavf_tx_queue_release_mbufs_avx512(struct iavf_tx_queue *txq); void iavf_rx_queue_release_mbufs_sse(struct iavf_rx_queue *rxq); void iavf_tx_queue_release_mbufs_sse(struct iavf_tx_queue *txq); +void iavf_rx_queue_release_mbufs_neon(struct iavf_rx_queue *rxq); static inline diff --git a/drivers/net/iavf/iavf_rxtx_vec_neon.c b/drivers/net/iavf/iavf_rxtx_vec_neon.c index 04be574683..4202adfb06 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_neon.c +++ b/drivers/net/iavf/iavf_rxtx_vec_neon.c @@ -394,5 +394,5 @@ iavf_recv_pkts_vec(void *__rte_restrict rx_queue, } -static void __rte_cold +void __rte_cold iavf_rx_queue_release_mbufs_neon(struct iavf_rx_queue *rxq) { @@ -400,12 +400,8 @@ iavf_rx_queue_release_mbufs_neon(struct iavf_rx_queue *rxq) } -static const struct iavf_rxq_ops neon_vec_rxq_ops = { - .release_mbufs = iavf_rx_queue_release_mbufs_neon, -}; - int __rte_cold iavf_rxq_vec_setup(struct iavf_rx_queue *rxq) { - rxq->ops = &neon_vec_rxq_ops; + rxq->rel_mbufs_type = IAVF_REL_MBUFS_NEON_VEC; return iavf_rxq_vec_setup_default(rxq); } -- 2.48.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-03-24 16:15:14.946775411 +0000 +++ 0003-net-iavf-fix-mbuf-release-in-Arm-multi-process.patch 2025-03-24 16:15:14.698735288 +0000 @@ -1 +1 @@ -From 289d1b2e348032543f9b823d2eaf3d0e0073af56 Mon Sep 17 00:00:00 2001 +From 427272a2a9571e244dadeb7433d5d4cfdabf8fc2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 289d1b2e348032543f9b823d2eaf3d0e0073af56 ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -19,3 +20,3 @@ - drivers/net/intel/iavf/iavf_rxtx.c | 3 +++ - drivers/net/intel/iavf/iavf_rxtx.h | 2 ++ - drivers/net/intel/iavf/iavf_rxtx_vec_neon.c | 8 ++------ + drivers/net/iavf/iavf_rxtx.c | 3 +++ + drivers/net/iavf/iavf_rxtx.h | 2 ++ + drivers/net/iavf/iavf_rxtx_vec_neon.c | 8 ++------ @@ -24,5 +25,5 @@ -diff --git a/drivers/net/intel/iavf/iavf_rxtx.c b/drivers/net/intel/iavf/iavf_rxtx.c -index 657963750d..a999073691 100644 ---- a/drivers/net/intel/iavf/iavf_rxtx.c -+++ b/drivers/net/intel/iavf/iavf_rxtx.c -@@ -381,4 +381,7 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = { +diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c +index 98a1d3f69d..0ffb9762fe 100644 +--- a/drivers/net/iavf/iavf_rxtx.c ++++ b/drivers/net/iavf/iavf_rxtx.c +@@ -412,4 +412,7 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = { @@ -36,5 +37,5 @@ -diff --git a/drivers/net/intel/iavf/iavf_rxtx.h b/drivers/net/intel/iavf/iavf_rxtx.h -index 6a54b446cf..823a6efa9a 100644 ---- a/drivers/net/intel/iavf/iavf_rxtx.h -+++ b/drivers/net/intel/iavf/iavf_rxtx.h -@@ -405,4 +405,5 @@ enum iavf_rxtx_rel_mbufs_type { +diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h +index 7b56076d32..ef8aab4e9d 100644 +--- a/drivers/net/iavf/iavf_rxtx.h ++++ b/drivers/net/iavf/iavf_rxtx.h +@@ -449,4 +449,5 @@ enum iavf_rxtx_rel_mbufs_type { @@ -46 +47 @@ -@@ -730,4 +731,5 @@ void iavf_tx_queue_release_mbufs_avx512(struct ci_tx_queue *txq); +@@ -774,4 +775,5 @@ void iavf_tx_queue_release_mbufs_avx512(struct iavf_tx_queue *txq); @@ -48 +49 @@ - void iavf_tx_queue_release_mbufs_sse(struct ci_tx_queue *txq); + void iavf_tx_queue_release_mbufs_sse(struct iavf_tx_queue *txq); @@ -52,4 +53,4 @@ -diff --git a/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c b/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c -index 6bc8e1db2a..a583340f15 100644 ---- a/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c -+++ b/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c +diff --git a/drivers/net/iavf/iavf_rxtx_vec_neon.c b/drivers/net/iavf/iavf_rxtx_vec_neon.c +index 04be574683..4202adfb06 100644 +--- a/drivers/net/iavf/iavf_rxtx_vec_neon.c ++++ b/drivers/net/iavf/iavf_rxtx_vec_neon.c @@ -75,2 +76,2 @@ - rxq->mbuf_initializer = ci_rxq_mbuf_initializer(rxq->port_id); - return 0; + return iavf_rxq_vec_setup_default(rxq); + }