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 0E3C5433D8 for ; Mon, 11 Dec 2023 11:15:43 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0997142686; Mon, 11 Dec 2023 11:15:43 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2060.outbound.protection.outlook.com [40.107.237.60]) by mails.dpdk.org (Postfix) with ESMTP id 3C90E40ED2 for ; Mon, 11 Dec 2023 11:15:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iNlUn+hEomvzqq7uXLpY3bmLvKfe/nJkoaub4HkPh2fSqA/9qbWwCn5wIBNa5F5Od/lA2P+s9BsSec4SVJI1x/sXNalFXckwpyoUR3vYTvlxrWl5cTpD3bwxd8B4Cw4IlaCm+f9aBnehe+LqWgelR/hU+jFsmul7geUSZpiB1D1XNHYHE/NBVxymnV2fQAPgaI/9Ry+N8hn6SVdDW73GH2gSdpoNHbMWvn0uYFr/y9J/57TZ7Gbyw+eSG2Q5d9oa4wTjk5hF7J9vYebQrbQqtI6gmC8r5KW60rOb4F/pvkQ+2MnTC+pd1rpvr1VzFp0BF8D2YaRwFZIaPD2WOWdVGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=buoODDJ8GE0OXergFIPirE0iIyN+UPSdk+cppm2Uoz0=; b=hJl+I8I1cNXJ7E7CI+b6AG3yGd0bBvZvk593lKoCwQCSSdLPY59HAZCh6ljNRhppMNN89abp/6cljWTcIwpv/PJaVXeXgs9DzZ8DUEPwcXTOcvkCGOj6MfpKlcsq83MJ5+9pzKoMkAN+IRwwmhdf68BgcJ3nxxXc0ePdyc4/LUxj9smjhm9Y+QYx49LIrqQjXzCPMrOJY+HXZS/lP912O8yTGNeY78uy640tkQOEMC3pliRoXO7mwhO5pRxNZaSMKiNTAzKLJg0tSKbA9tjUaTAASvozofdMrlj15wXwem5tDxi6OVFWY5zi2MyhKi7i9fmQU0cZvTzYbqNojb7DWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=trustnetic.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=buoODDJ8GE0OXergFIPirE0iIyN+UPSdk+cppm2Uoz0=; b=LhYLQsPLJgD2e80QLcDJHAnUfAVdCciSqRL6DLT6cLf1THX951k/rxqpJ/EAIJXZSrUWSdYEEA8n8MD82UrPx/n6/UUbLh7RVspLQs2QoGBzFOBQOhPKso2mNnNZ7VRZaf8aCyX7I/LfTRxbhlBs/m/yhdcUbrFmVy3mvbspGP0nSzNRQI1NHYVK5M9lBvb6+d+PKNoHmHV1fTR/+PLxZtdKf4aODEKguU7JBuhPNAT+x3Y2b20Y94X9X0BpKqJZauSw0+BNbr5J6e5zXxDphEhHHrSIFsfcDJiZY8qhfLg59QMa/MZrQpoUNmOkTyXP249hXvccje45HvcR5Ph1IA== Received: from BL0PR02CA0132.namprd02.prod.outlook.com (2603:10b6:208:35::37) by LV3PR12MB9440.namprd12.prod.outlook.com (2603:10b6:408:215::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 10:15:40 +0000 Received: from MN1PEPF0000ECD6.namprd02.prod.outlook.com (2603:10b6:208:35:cafe::3a) by BL0PR02CA0132.outlook.office365.com (2603:10b6:208:35::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend Transport; Mon, 11 Dec 2023 10:15:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by MN1PEPF0000ECD6.mail.protection.outlook.com (10.167.242.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 10:15:39 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 02:15:22 -0800 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 02:15:20 -0800 From: Xueming Li To: Jiawen Wu CC: dpdk stable Subject: patch 'net/ngbe: add proper memory barriers in Rx' has been queued to stable release 22.11.4 Date: Mon, 11 Dec 2023 18:10:57 +0800 Message-ID: <20231211101226.2122-33-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231211101226.2122-1-xuemingl@nvidia.com> References: <20231022142250.10324-1-xuemingl@nvidia.com> <20231211101226.2122-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD6:EE_|LV3PR12MB9440:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f1caae9-0f00-46ef-f244-08dbfa322024 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jNWRKQ2gXtdRwqriLUTKcurYltnb0XPrDJIwPm4zMOpoHIPy4UB8blJ3OUlsJiA9f93US+1DixFd5iLWC32RTJsspu7Buf6dLqFUrYCc6V+hzYxjiP66OYmLKzQxQNoH6DVL90uPQPG/lMQ9s9Y3TVaZgL4Kq1TWZrBJDPzeIVGJRTTkNV65jkIgssxI+nqi+/3RPfFTm7g9IqB1WdcNBctBI/H0JtBX8jHCx7T3N8eRKla2U/R/LRghYzy0Gux3cDUy8vsh7RrspbFESVdZwYKQQvJ15OlkgS98p4mPQPM1U4uiwQ28A0U33Qa90+malIivPvXfgFOrja2PtGHksy442HG/0te4z+r3HuL7+MdwhCTSAHbQS/hu20KFaQB9LHabHwnbvmkz+i3kWaRUksiY2a1EZTfoCciVdYohO6+WqG064WHbAe/un7Eq2oAywB2CmXlLjx7xZXyTgojaiRkLfeN9mzLBcYNIVajy8b/pGxQVO3u4T8OnRB58VL4b+aqhxr//r/uLExicVKX867Dco2xZ3gsL1lNaz1UOZCbECBoJ8Ps3Mno2GVmbPHYWvmKW9L1JH/9Cy5ZdoxIGMvZ5k/IVj8jRQWr3M1X+u4QnnYuPHJP4DUQajpwfi2G1jjEgUnh2VeNnmltYCuNGTMT/h6WCG0sSBB6isPIOm6S7S0SY9cLeLMeyhcuU3hubiy0OGeh9+RySddScc8VsrMBvNlGWhRcs82Pc+2P7NE2W6ZhnDCdx6c6JzjpFSkEpl46Mwpuz2OzNyehqh+baZUBxG0Ftwpm6+aWXGcwJyw0= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(396003)(39860400002)(136003)(346002)(376002)(230922051799003)(64100799003)(1800799012)(82310400011)(186009)(451199024)(46966006)(36840700001)(40470700004)(4001150100001)(6666004)(7696005)(2906002)(6916009)(53546011)(70586007)(70206006)(356005)(7636003)(36756003)(86362001)(316002)(8676002)(8936002)(4326008)(5660300002)(40480700001)(966005)(478600001)(40460700003)(55016003)(41300700001)(36860700001)(47076005)(82740400003)(6286002)(26005)(336012)(426003)(1076003)(2616005)(83380400001)(16526019); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 10:15:39.5626 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9f1caae9-0f00-46ef-f244-08dbfa322024 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000ECD6.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9440 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 22.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 12/13/23. 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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=14a4c7b3e812ff3b9e4d0bd1029f018a9f253384 Thanks. Xueming Li --- >From 14a4c7b3e812ff3b9e4d0bd1029f018a9f253384 Mon Sep 17 00:00:00 2001 From: Jiawen Wu Date: Wed, 1 Nov 2023 11:32:41 +0800 Subject: [PATCH] net/ngbe: add proper memory barriers in Rx Cc: Xueming Li [ upstream commit a74c5001e96e0463db0ace848a1605b98c1d8c24 ] Refer to commit 85e46c532bc7 ("net/ixgbe: add proper memory barriers in Rx"). Fix the same issue as ixgbe. Although due to the testing schedule, the current test has not found this problem. We also do the same fix in ngbe, to ensure the read ordering be correct. Fixes: 79f3128d4d98 ("net/ngbe: support scattered Rx") Signed-off-by: Jiawen Wu --- drivers/net/ngbe/ngbe_rxtx.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/net/ngbe/ngbe_rxtx.c b/drivers/net/ngbe/ngbe_rxtx.c index ec353a30b1..54a6f6a887 100644 --- a/drivers/net/ngbe/ngbe_rxtx.c +++ b/drivers/net/ngbe/ngbe_rxtx.c @@ -1223,11 +1223,22 @@ ngbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, * of accesses cannot be reordered by the compiler. If they were * not volatile, they could be reordered which could lead to * using invalid descriptor fields when read from rxd. + * + * Meanwhile, to prevent the CPU from executing out of order, we + * need to use a proper memory barrier to ensure the memory + * ordering below. */ rxdp = &rx_ring[rx_id]; staterr = rxdp->qw1.lo.status; if (!(staterr & rte_cpu_to_le_32(NGBE_RXD_STAT_DD))) break; + + /* + * Use acquire fence to ensure that status_error which includes + * DD bit is loaded before loading of other descriptor words. + */ + rte_atomic_thread_fence(__ATOMIC_ACQUIRE); + rxd = *rxdp; /* @@ -1454,6 +1465,12 @@ next_desc: if (!(staterr & NGBE_RXD_STAT_DD)) break; + /* + * Use acquire fence to ensure that status_error which includes + * DD bit is loaded before loading of other descriptor words. + */ + rte_atomic_thread_fence(__ATOMIC_ACQUIRE); + rxd = *rxdp; PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u rx_id=%u " -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-12-11 17:56:24.219804400 +0800 +++ 0032-net-ngbe-add-proper-memory-barriers-in-Rx.patch 2023-12-11 17:56:22.947652300 +0800 @@ -1 +1 @@ -From a74c5001e96e0463db0ace848a1605b98c1d8c24 Mon Sep 17 00:00:00 2001 +From 14a4c7b3e812ff3b9e4d0bd1029f018a9f253384 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit a74c5001e96e0463db0ace848a1605b98c1d8c24 ] @@ -14 +16,0 @@ -Cc: stable@dpdk.org @@ -18,2 +20,2 @@ - drivers/net/ngbe/ngbe_rxtx.c | 19 ++++++++++++++++++- - 1 file changed, 18 insertions(+), 1 deletion(-) + drivers/net/ngbe/ngbe_rxtx.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) @@ -22 +24 @@ -index ec353a30b1..8a873b858e 100644 +index ec353a30b1..54a6f6a887 100644 @@ -25,9 +26,0 @@ -@@ -980,7 +980,7 @@ ngbe_rx_scan_hw_ring(struct ngbe_rx_queue *rxq) - for (j = 0; j < LOOK_AHEAD; j++) - s[j] = rte_le_to_cpu_32(rxdp[j].qw1.lo.status); - -- rte_atomic_thread_fence(__ATOMIC_ACQUIRE); -+ rte_atomic_thread_fence(rte_memory_order_acquire); - - /* Compute how many status bits were set */ - for (nb_dd = 0; nb_dd < LOOK_AHEAD && @@ -52 +45 @@ -+ rte_atomic_thread_fence(rte_memory_order_acquire); ++ rte_atomic_thread_fence(__ATOMIC_ACQUIRE); @@ -65 +58 @@ -+ rte_atomic_thread_fence(rte_memory_order_acquire); ++ rte_atomic_thread_fence(__ATOMIC_ACQUIRE);