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 6DA8FA0C41 for ; Tue, 30 Nov 2021 17:36:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 62784410F7; Tue, 30 Nov 2021 17:36:24 +0100 (CET) Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123]) by mails.dpdk.org (Postfix) with ESMTP id F19E6411E6 for ; Tue, 30 Nov 2021 17:36:22 +0100 (CET) Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) (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 smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 71E3B3FFEC for ; Tue, 30 Nov 2021 16:36:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1638290182; bh=R1rxYqhCzCIpmPtdUZx1WXlS3fLoow/4zQNwpGPPOAI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ryA35nV8ZN3n3M2g4HeHk4TKBT1ABgQVX7dK5LFtByiE+VW/xdRlUghAPtntlw4wf +ENIUo3syb+g8o/OBqxs+McUJISBK8H+Bol3azMSXeqqTuGoQvHi1fBPSf/I9/toSg BJ3qJHoXrTEL8OWSoaXCrUNsKp4b8rjoIF+700G9BixBE3d4Nz4iQQlAhE65jPQjLL VDssze99LWuYb7F5LObMFRKjWUNVi03robbljA/BvDp4I3o1y13GtTYfTL8aQzf6EF m2WjEOEb4i5wDOV7xCPGHMGflENnZXlnN7edq4TQWJ7vqxPUlnIrigXlK9AhNLi0Es 3IJeF1yK4Ho1w== Received: by mail-ed1-f72.google.com with SMTP id t9-20020aa7d709000000b003e83403a5cbso17482603edq.19 for ; Tue, 30 Nov 2021 08:36:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=R1rxYqhCzCIpmPtdUZx1WXlS3fLoow/4zQNwpGPPOAI=; b=sKXD10exulP4GuxsJY7j21ojFIsXI3zNbn56bHve9Ah/3i6ZAnRuEfJkgsn6O0UC4w zv+OJKJSdlidHyjSvysVGjbgibqVRM5xtWXDE2AFPpkGb+ubKMimlQOJOvknZNZOQ1/l 344rk2x37eH2hBOTldXwzcMH3OYwoJItuGLT98hjT+N/6JdcFTei5RiCwwUR4uteLogn CE8yIBXku9lBQN3uKsriJR4cvIS6khHHxa5btZB2Y7mRCn/lYFmRsRq7b/7KXPZmqE6Y Kzwk2XBUKvV51qzDOdojJT7KiOp2v60g31xNZT8KvsEIz+QqRxnDfNpuMAa9WOQSCSHy 1cdQ== X-Gm-Message-State: AOAM533Q4z1PpWfDDy6LOQno8j9mVM6jkA9r5Q9Ucet86HjiUuZvbGxQ DGRENyQhoaScjdeWzOAJJDWYiJ7DruqK1u+g0jRlzS0hcUBoG5jlPh7QdtlsRpO2mDde+rs09ox iFLRmNyD9HsR0r0FQs2HmQena X-Received: by 2002:a05:6402:2552:: with SMTP id l18mr55849edb.368.1638290182036; Tue, 30 Nov 2021 08:36:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJxDX7Zk71NH8zJIoEtm2qMAUT76H2QOyo0/T1DeSXUsA3sZlynEMUe8qKEG56g2vWLVVd+Arw== X-Received: by 2002:a05:6402:2552:: with SMTP id l18mr55811edb.368.1638290181790; Tue, 30 Nov 2021 08:36:21 -0800 (PST) Received: from localhost.localdomain ([2001:67c:1560:8007::aac:c4ad]) by smtp.gmail.com with ESMTPSA id e1sm8859798ejy.82.2021.11.30.08.36.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Nov 2021 08:36:21 -0800 (PST) From: christian.ehrhardt@canonical.com To: Feifei Wang Cc: Ruifeng Wang , dpdk stable Subject: patch 'drivers/net: fix vector Rx comments' has been queued to stable release 19.11.11 Date: Tue, 30 Nov 2021 17:33:29 +0100 Message-Id: <20211130163605.2460997-5-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.34.0 In-Reply-To: <20211130163605.2460997-1-christian.ehrhardt@canonical.com> References: <20211130163605.2460997-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 19.11.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before December 10th 2021. 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/cpaelzer/dpdk-stable-queue This queued commit can be viewed at: https://github.com/cpaelzer/dpdk-stable-queue/commit/b83e5a9c5caa2fd047d6b215ff9e90b2643f274f Thanks. Christian Ehrhardt --- >From b83e5a9c5caa2fd047d6b215ff9e90b2643f274f Mon Sep 17 00:00:00 2001 From: Feifei Wang Date: Fri, 23 Jul 2021 11:10:47 +0800 Subject: [PATCH] drivers/net: fix vector Rx comments [ upstream commit 4f76ac98b787dbc893d9aaae487f79e69cb962c4 ] For the loop to process packets in Rx vector path, some notes for the code are wrong, fix these errors. Fixes: 7092be8437bd ("fm10k: add vector Rx") Fixes: c3def6a8724c ("net/i40e: implement vector PMD for altivec") Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM") Fixes: 9ed94e5bb04e ("i40e: add vector Rx") Fixes: 319c421f3890 ("net/avf: enable SSE Rx Tx") Fixes: 1162f5a0ef31 ("net/iavf: support flexible Rx descriptor in SSE path") Fixes: c68a52b8b38c ("net/ice: support vector SSE in Rx") Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx") Suggested-by: Ruifeng Wang Signed-off-by: Feifei Wang Reviewed-by: Ruifeng Wang --- drivers/net/fm10k/fm10k_rxtx_vec.c | 4 ++-- drivers/net/i40e/i40e_rxtx_vec_altivec.c | 8 ++++---- drivers/net/i40e/i40e_rxtx_vec_neon.c | 8 ++++---- drivers/net/i40e/i40e_rxtx_vec_sse.c | 4 ++-- drivers/net/iavf/iavf_rxtx_vec_sse.c | 4 ++-- drivers/net/ice/ice_rxtx_vec_sse.c | 4 ++-- drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/net/fm10k/fm10k_rxtx_vec.c b/drivers/net/fm10k/fm10k_rxtx_vec.c index ab7c515e9c..a441d33980 100644 --- a/drivers/net/fm10k/fm10k_rxtx_vec.c +++ b/drivers/net/fm10k/fm10k_rxtx_vec.c @@ -472,7 +472,7 @@ fm10k_recv_raw_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, mbp1 = _mm_loadu_si128((__m128i *)&mbufp[pos]); /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs0[3] = _mm_loadu_si128((__m128i *)(rxdp + 3)); rte_compiler_barrier(); @@ -484,9 +484,9 @@ fm10k_recv_raw_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, mbp2 = _mm_loadu_si128((__m128i *)&mbufp[pos+2]); #endif + /* A.1 load desc[2-0] */ descs0[2] = _mm_loadu_si128((__m128i *)(rxdp + 2)); rte_compiler_barrier(); - /* B.1 load 2 mbuf point */ descs0[1] = _mm_loadu_si128((__m128i *)(rxdp + 1)); rte_compiler_barrier(); descs0[0] = _mm_loadu_si128((__m128i *)(rxdp)); diff --git a/drivers/net/i40e/i40e_rxtx_vec_altivec.c b/drivers/net/i40e/i40e_rxtx_vec_altivec.c index e912ab02bc..12dacc31a4 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_altivec.c +++ b/drivers/net/i40e/i40e_rxtx_vec_altivec.c @@ -281,22 +281,22 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts, * in one XMM reg. */ - /* B.1 load 1 mbuf point */ + /* B.1 load 2 mbuf point */ mbp1 = *(vector unsigned long *)&sw_ring[pos]; /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs[3] = *(vector unsigned long *)(rxdp + 3); rte_compiler_barrier(); /* B.2 copy 2 mbuf point into rx_pkts */ *(vector unsigned long *)&rx_pkts[pos] = mbp1; - /* B.1 load 1 mbuf point */ + /* B.1 load 2 mbuf point */ mbp2 = *(vector unsigned long *)&sw_ring[pos + 2]; + /* A.1 load desc[2-0] */ descs[2] = *(vector unsigned long *)(rxdp + 2); rte_compiler_barrier(); - /* B.1 load 2 mbuf point */ descs[1] = *(vector unsigned long *)(rxdp + 1); rte_compiler_barrier(); descs[0] = *(vector unsigned long *)(rxdp); diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c index d279cd3a9b..bd1e0490da 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_neon.c +++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c @@ -279,20 +279,20 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts, int32x4_t len_shl = {0, 0, 0, PKTLEN_SHIFT}; - /* B.1 load 1 mbuf point */ + /* B.1 load 2 mbuf point */ mbp1 = vld1q_u64((uint64_t *)&sw_ring[pos]); /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs[3] = vld1q_u64((uint64_t *)(rxdp + 3)); /* B.2 copy 2 mbuf point into rx_pkts */ vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1); - /* B.1 load 1 mbuf point */ + /* B.1 load 2 mbuf point */ mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]); + /* A.1 load desc[2-0] */ descs[2] = vld1q_u64((uint64_t *)(rxdp + 2)); - /* B.1 load 2 mbuf point */ descs[1] = vld1q_u64((uint64_t *)(rxdp + 1)); descs[0] = vld1q_u64((uint64_t *)(rxdp)); diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c index 8c17f2d27f..65202a5277 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_sse.c +++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c @@ -462,7 +462,7 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts, /* B.1 load 2 (64 bit) or 4 (32 bit) mbuf points */ mbp1 = _mm_loadu_si128((__m128i *)&sw_ring[pos]); /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs[3] = _mm_loadu_si128((__m128i *)(rxdp + 3)); rte_compiler_barrier(); @@ -474,9 +474,9 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts, mbp2 = _mm_loadu_si128((__m128i *)&sw_ring[pos+2]); #endif + /* A.1 load desc[2-0] */ descs[2] = _mm_loadu_si128((__m128i *)(rxdp + 2)); rte_compiler_barrier(); - /* B.1 load 2 mbuf point */ descs[1] = _mm_loadu_si128((__m128i *)(rxdp + 1)); rte_compiler_barrier(); descs[0] = _mm_loadu_si128((__m128i *)(rxdp)); diff --git a/drivers/net/iavf/iavf_rxtx_vec_sse.c b/drivers/net/iavf/iavf_rxtx_vec_sse.c index 8237a8180a..aefa81ecd3 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_sse.c +++ b/drivers/net/iavf/iavf_rxtx_vec_sse.c @@ -341,7 +341,7 @@ _recv_raw_pkts_vec(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_pkts, /* B.1 load 2 (64 bit) or 4 (32 bit) mbuf points */ mbp1 = _mm_loadu_si128((__m128i *)&sw_ring[pos]); /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs[3] = _mm_loadu_si128((__m128i *)(rxdp + 3)); rte_compiler_barrier(); @@ -353,9 +353,9 @@ _recv_raw_pkts_vec(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_pkts, mbp2 = _mm_loadu_si128((__m128i *)&sw_ring[pos + 2]); #endif + /* A.1 load desc[2-0] */ descs[2] = _mm_loadu_si128((__m128i *)(rxdp + 2)); rte_compiler_barrier(); - /* B.1 load 2 mbuf point */ descs[1] = _mm_loadu_si128((__m128i *)(rxdp + 1)); rte_compiler_barrier(); descs[0] = _mm_loadu_si128((__m128i *)(rxdp)); diff --git a/drivers/net/ice/ice_rxtx_vec_sse.c b/drivers/net/ice/ice_rxtx_vec_sse.c index b6bcca6d19..71320d82aa 100644 --- a/drivers/net/ice/ice_rxtx_vec_sse.c +++ b/drivers/net/ice/ice_rxtx_vec_sse.c @@ -366,7 +366,7 @@ _ice_recv_raw_pkts_vec(struct ice_rx_queue *rxq, struct rte_mbuf **rx_pkts, /* B.1 load 2 (64 bit) or 4 (32 bit) mbuf points */ mbp1 = _mm_loadu_si128((__m128i *)&sw_ring[pos]); /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs[3] = _mm_loadu_si128((__m128i *)(rxdp + 3)); rte_compiler_barrier(); @@ -378,9 +378,9 @@ _ice_recv_raw_pkts_vec(struct ice_rx_queue *rxq, struct rte_mbuf **rx_pkts, mbp2 = _mm_loadu_si128((__m128i *)&sw_ring[pos + 2]); #endif + /* A.1 load desc[2-0] */ descs[2] = _mm_loadu_si128((__m128i *)(rxdp + 2)); rte_compiler_barrier(); - /* B.1 load 2 mbuf point */ descs[1] = _mm_loadu_si128((__m128i *)(rxdp + 1)); rte_compiler_barrier(); descs[0] = _mm_loadu_si128((__m128i *)(rxdp)); diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c index e9b101a486..414845f2d7 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c @@ -454,7 +454,7 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts, mbp1 = _mm_loadu_si128((__m128i *)&sw_ring[pos]); /* Read desc statuses backwards to avoid race condition */ - /* A.1 load 4 pkts desc */ + /* A.1 load desc[3] */ descs[3] = _mm_loadu_si128((__m128i *)(rxdp + 3)); rte_compiler_barrier(); @@ -466,9 +466,9 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts, mbp2 = _mm_loadu_si128((__m128i *)&sw_ring[pos+2]); #endif + /* A.1 load desc[2-0] */ descs[2] = _mm_loadu_si128((__m128i *)(rxdp + 2)); rte_compiler_barrier(); - /* B.1 load 2 mbuf point */ descs[1] = _mm_loadu_si128((__m128i *)(rxdp + 1)); rte_compiler_barrier(); descs[0] = _mm_loadu_si128((__m128i *)(rxdp)); -- 2.34.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-11-30 16:50:06.485449708 +0100 +++ 0005-drivers-net-fix-vector-Rx-comments.patch 2021-11-30 16:50:05.506871446 +0100 @@ -1 +1 @@ -From 4f76ac98b787dbc893d9aaae487f79e69cb962c4 Mon Sep 17 00:00:00 2001 +From b83e5a9c5caa2fd047d6b215ff9e90b2643f274f Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 4f76ac98b787dbc893d9aaae487f79e69cb962c4 ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ - drivers/net/iavf/iavf_rxtx_vec_sse.c | 8 ++++---- + drivers/net/iavf/iavf_rxtx_vec_sse.c | 4 ++-- @@ -30 +31 @@ - 7 files changed, 20 insertions(+), 20 deletions(-) + 7 files changed, 18 insertions(+), 18 deletions(-) @@ -33 +34 @@ -index cae5322d48..83af01dc2d 100644 +index ab7c515e9c..a441d33980 100644 @@ -57 +58 @@ -index edaa462ac8..b99323992f 100644 +index e912ab02bc..12dacc31a4 100644 @@ -88 +89 @@ -index 32336fdb80..fb624a4882 100644 +index d279cd3a9b..bd1e0490da 100644 @@ -91 +92 @@ -@@ -280,20 +280,20 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *__rte_restrict rxq, +@@ -279,20 +279,20 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts, @@ -117 +118 @@ -index 03a0320353..b235502db5 100644 +index 8c17f2d27f..65202a5277 100644 @@ -141 +142 @@ -index b813d96ef4..ee1e905525 100644 +index 8237a8180a..aefa81ecd3 100644 @@ -144,21 +145 @@ -@@ -494,7 +494,7 @@ _recv_raw_pkts_vec(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_pkts, - /* B.1 load 2 (64 bit) or 4 (32 bit) mbuf points */ - mbp1 = _mm_loadu_si128((__m128i *)&sw_ring[pos]); - /* Read desc statuses backwards to avoid race condition */ -- /* A.1 load 4 pkts desc */ -+ /* A.1 load desc[3] */ - descs[3] = _mm_loadu_si128((__m128i *)(rxdp + 3)); - rte_compiler_barrier(); - -@@ -506,9 +506,9 @@ _recv_raw_pkts_vec(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_pkts, - mbp2 = _mm_loadu_si128((__m128i *)&sw_ring[pos + 2]); - #endif - -+ /* A.1 load desc[2-0] */ - descs[2] = _mm_loadu_si128((__m128i *)(rxdp + 2)); - rte_compiler_barrier(); -- /* B.1 load 2 mbuf point */ - descs[1] = _mm_loadu_si128((__m128i *)(rxdp + 1)); - rte_compiler_barrier(); - descs[0] = _mm_loadu_si128((__m128i *)(rxdp)); -@@ -755,7 +755,7 @@ _recv_raw_pkts_vec_flex_rxd(struct iavf_rx_queue *rxq, +@@ -341,7 +341,7 @@ _recv_raw_pkts_vec(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_pkts, @@ -173 +154 @@ -@@ -767,9 +767,9 @@ _recv_raw_pkts_vec_flex_rxd(struct iavf_rx_queue *rxq, +@@ -353,9 +353,9 @@ _recv_raw_pkts_vec(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_pkts, @@ -185 +166 @@ -index 5f7e13ee39..653bd28b41 100644 +index b6bcca6d19..71320d82aa 100644 @@ -188 +169 @@ -@@ -416,7 +416,7 @@ _ice_recv_raw_pkts_vec(struct ice_rx_queue *rxq, struct rte_mbuf **rx_pkts, +@@ -366,7 +366,7 @@ _ice_recv_raw_pkts_vec(struct ice_rx_queue *rxq, struct rte_mbuf **rx_pkts, @@ -197 +178 @@ -@@ -428,9 +428,9 @@ _ice_recv_raw_pkts_vec(struct ice_rx_queue *rxq, struct rte_mbuf **rx_pkts, +@@ -378,9 +378,9 @@ _ice_recv_raw_pkts_vec(struct ice_rx_queue *rxq, struct rte_mbuf **rx_pkts, @@ -209 +190 @@ -index 3a3ef51172..1dea95e73b 100644 +index e9b101a486..414845f2d7 100644