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 7274244144; Mon, 3 Jun 2024 10:26:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AFD2942E2C; Mon, 3 Jun 2024 10:26:39 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2083.outbound.protection.outlook.com [40.107.101.83]) by mails.dpdk.org (Postfix) with ESMTP id C559542E00 for ; Mon, 3 Jun 2024 10:26:37 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CKezNat8lTenOMSz4y4VLrYZKJbUBLOiVuM7bdvFTjdZGKAT6ueTquZ4k33Pgl06cnFK5GdXugWMy93fbtvCWfDj0/gPK2EhYzhTECGTbnOi9izDSwQyYrPZWLHWvkF0SR1KhAhUXsraVRSkRDCiWDZAvjDJKvQM869/37aRywDBbT0pyMwGSA34kNX0wjhKxu9k3mtwX7WEDeM7c6YoN7YFpBTo0QjuRLHM5BtwW3wKKggh2bqolDkxDhn9V5HJiYYynO2yRXf/xU/uOyN23CFoNqvT2r8zt6o+V81LL8/tT0DWhVaAJfRRbDbEw9mRhtk9yjWgGmPQ+5TAsqAC9g== 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=t7yIaeYq7GzHqoU4XBjwuQbBAVzJVi6cgLevA4k5pek=; b=ONJ0YE1i5KX8PMFmyP54g7ASo7VQ7SbivQHAikvqWVmepqgPdRpXpaNJoAJ0yER1OiwgB6cn9ZE8WTYTktB2vvAOP9V5pIe/0Zz6juzFjYQK4r9tQZhOGfFd01WL0QhB97RUaJlQRIj1QYQuHSukNHfpz+l4Y03aVb7pOccwGrJow05HzOMI7gqMLQRm5BWeelVyZ22MZTx6tHYzt5md+MV3zDUZ1L7mzZOyTSOB/MLrmKPf51U/t/Mc370TeYDhT9r4/LVBCAfWwcpFSIN5r4N5hJwYqdr04F3tvYLjoHszc0sg3l+vh+LbzVoLkBzfA0/YBAxuB00Nh0XiR29ZmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org 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=t7yIaeYq7GzHqoU4XBjwuQbBAVzJVi6cgLevA4k5pek=; b=Bmp3dKFoNkY/BzR5RnWx2q0Tl0Dw6/GxtcMI0ui3gQjwXIMHrjoygMtiEi0rKN2gnpkfHvjcEm1F9yOiBHgUlIKNuEFNfIFQ33tn6mXFd/5DY+1txR/sh+0JlmhV1awLr4+0FBAw0Q4efm8KRYQsxuiU+S/OydXs+qcm0uP92ZJ4vWyJQVHRFeD40lTribockg1ASyz2S2RW2mNPCYMqb/PEP+QBETLgenBmIsJDm2Uh9n+ImW2jvcu5Mu5juCoJmSEgKl8N/e0coCoayacAdKVhByfBH6b2rbq40Ce0p5GpVjDM6GtEBAh0Sodier9N1bQBpzU2CUTe6cnj4z368g== Received: from SN7PR04CA0066.namprd04.prod.outlook.com (2603:10b6:806:121::11) by SN7PR12MB7226.namprd12.prod.outlook.com (2603:10b6:806:2a9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.24; Mon, 3 Jun 2024 08:26:34 +0000 Received: from SN1PEPF000397B3.namprd05.prod.outlook.com (2603:10b6:806:121:cafe::dc) by SN7PR04CA0066.outlook.office365.com (2603:10b6:806:121::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.29 via Frontend Transport; Mon, 3 Jun 2024 08:26:34 +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 SN1PEPF000397B3.mail.protection.outlook.com (10.167.248.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Mon, 3 Jun 2024 08:26:34 +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.1544.4; Mon, 3 Jun 2024 01:26:21 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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.1544.4; Mon, 3 Jun 2024 01:26:21 -0700 Received: from nvidia.com (10.127.8.14) by mail.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.1544.4 via Frontend Transport; Mon, 3 Jun 2024 01:26:18 -0700 From: Maayan Kashani To: CC: , , , Yevgeny Kliteynik , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad Subject: [PATCH v2 29/34] net/mlx5/hws: bwc - abort rehash on completion with error Date: Mon, 3 Jun 2024 11:25:57 +0300 Message-ID: <20240603082601.4173-4-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20240603082601.4173-1-mkashani@nvidia.com> References: <20240602102937.197117-1-mkashani@nvidia.com> <20240603082601.4173-1-mkashani@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000397B3:EE_|SN7PR12MB7226:EE_ X-MS-Office365-Filtering-Correlation-Id: d9177a16-4817-4ebd-b944-08dc83a6e143 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|36860700004|376005|82310400017|1800799015; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?S3N49nNnHvmt83qFWgciwetvvedHxH8YmFN77IkZ+SCCAt7rRS6cMaWQbkcC?= =?us-ascii?Q?5Prjr/W12ZRtI2FFQvzXLFKpP5STtc20T+6QrqmbAGnEmGUQ8hJfePsQkZie?= =?us-ascii?Q?39Nm0AffRRLWy7wK7JAdQlqco36h1LniE52mSS4OyoOwUAk5oSnPwrZNCZjs?= =?us-ascii?Q?vBCsYASOpuHhbn2CDqwcazIzXQF8x+iWHzXLC+fY+GOhfsPl4EUQtP9hgaFm?= =?us-ascii?Q?tK6/KJh+tRGV70vgOQ58Kvg7MO+JNwjjLHY6QNxOMiVruKdk2b/bIyLZpB78?= =?us-ascii?Q?LxWl2QMEM/jVoEUTr3nvKYtOwCy8xYCzTipvo4kMF9A89mL4ZBP9tDo/LhRd?= =?us-ascii?Q?PRISXZZPZkbn3xtkBYjP6IfpXPxZkrLSE1Tt6uB6UayGTrQSbqSPMtcOe4WW?= =?us-ascii?Q?PM3zT6+DH/gmYTY1j0vGx0ej3eGlMdHryEhF3kLNSza/pxJvcRCb6tyi8Bbk?= =?us-ascii?Q?P6ZjlWuXHadWLwjWbuTqijKTBuw8vIC6pdI1yiXTkSsv1Y5J0GWsjSXmr3nH?= =?us-ascii?Q?2+GgI/fKh/NgphtrMl5mfNi4u2xBEIxPef9gM0t2UzKKCWAt1XkLgDLs2qLq?= =?us-ascii?Q?ZLWE0uPDBkTJgGbz1IMaCTNkKcJLbqZMmU1THuB1g9NKNxz0mN3/Q52JCv+S?= =?us-ascii?Q?uzr5SVqfNF7Q7NX51WgeQuliMQNnf6OKXDjnRDhJWq35XOZF5s3kdj3tVyzu?= =?us-ascii?Q?WaD+cra50d6KuMnh19OcW7PQ9vVfDEqQWPokTQSle41lu4dwa3qR9sUycXKh?= =?us-ascii?Q?eQOo3tUcuD7QxpjYTapKwLFQtVgy9BJQZgnVwdFzJUUUCrUEeC3PS2bEq6y5?= =?us-ascii?Q?GPKbTlI+gkGB3Rm1wJ3/haTR0WsTCDA6wqhZOnxrqJaJYsA3TV5BznQrpAkW?= =?us-ascii?Q?iCPayTa/3R5IDebkQUBuB8/GZ1N5ERLEVbJkwmnrkK+LWv7biYJNvIIxWq1y?= =?us-ascii?Q?iOJ/CyzgUNo/pNXY4zjaKJGaa8MW5IMmD3+tgUJ0mjA+zAmsyemX/9/GMVd6?= =?us-ascii?Q?60pX2l1tP33mxSqcoJbfRBOZWcdNmVMmn66yvcltJUH6Fx8RucjXQOl8Wurx?= =?us-ascii?Q?pmjJCaphapfSWKwC07Bm1BtWuajOTnxhufYeGJ7epZvXLt9VEbe2nb9v2OWR?= =?us-ascii?Q?yp8p/Eo1YAvnyvDi0yPA6C7cvf2tLGCJDz7KBTETXZXhoVGSICNhHlsIx0D0?= =?us-ascii?Q?I2tXEOIlD7rwoi32vCG577qKFOsxwSS0v8Ur9GCVnK4SmEIunkB/xpIAr2bo?= =?us-ascii?Q?Bp2JYrs3khEGnNdvJq5ahHbOeT2n5FjD85pEKkzW/Xqo7KC7LgMa220p2IWp?= =?us-ascii?Q?qI9UqNZZ4SFuDvm/ab3qyztmw6oZh+MjZEq9N5JMB6pzpSfxuxjtgYolumQx?= =?us-ascii?Q?u4J11c4=3D?= 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)(36860700004)(376005)(82310400017)(1800799015); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2024 08:26:34.5483 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d9177a16-4817-4ebd-b944-08dc83a6e143 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: SN1PEPF000397B3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7226 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 From: Yevgeny Kliteynik If during rehash there is a completion with error on moving rule to a new matcher, abort the rehash and return error. Signed-off-by: Yevgeny Kliteynik --- drivers/net/mlx5/hws/mlx5dr_bwc.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_bwc.c b/drivers/net/mlx5/hws/mlx5dr_bwc.c index 8a8a143f17..e0b6390ed9 100644 --- a/drivers/net/mlx5/hws/mlx5dr_bwc.c +++ b/drivers/net/mlx5/hws/mlx5dr_bwc.c @@ -185,6 +185,7 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, struct rte_flow_op_result comp[MLX5DR_BWC_MATCHER_REHASH_BURST_TH]; uint16_t burst_th = mlx5dr_bwc_get_burst_th(ctx, queue_id); bool got_comp = *pending_rules >= burst_th; + int err = 0; int ret; int i; @@ -203,10 +204,12 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, if (ret) { (*pending_rules) -= ret; for (i = 0; i < ret; i++) { - if (unlikely(comp[i].status != RTE_FLOW_OP_SUCCESS)) + if (unlikely(comp[i].status != RTE_FLOW_OP_SUCCESS)) { DR_LOG(ERR, "Rehash error: polling queue %d returned completion with error\n", queue_id); + err = -EINVAL; + } } queue_full = false; } @@ -214,7 +217,7 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, got_comp = !!ret; } - return 0; + return err; } static void @@ -632,7 +635,7 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) ret = mlx5dr_matcher_resize_rule_move(bwc_matcher->matcher, bwc_rules[i]->rule, &rule_attr); - if (ret) { + if (unlikely(ret)) { DR_LOG(ERR, "Moving BWC rule failed during rehash - %d", ret); rte_errno = ENOMEM; @@ -643,8 +646,12 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) pending_rules[i]++; bwc_rules[i] = LIST_NEXT(bwc_rules[i], next); - mlx5dr_bwc_queue_poll(ctx, rule_attr.queue_id, - &pending_rules[i], false); + ret = mlx5dr_bwc_queue_poll(ctx, rule_attr.queue_id, + &pending_rules[i], false); + if (unlikely(ret)) { + rte_errno = EINVAL; + goto free_bwc_rules; + } } } } while (!all_done); @@ -654,8 +661,12 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) if (pending_rules[i]) { uint16_t queue_id = mlx5dr_bwc_get_queue_id(ctx, i); mlx5dr_send_engine_flush_queue(&ctx->send_queue[queue_id]); - mlx5dr_bwc_queue_poll(ctx, queue_id, - &pending_rules[i], true); + ret = mlx5dr_bwc_queue_poll(ctx, queue_id, + &pending_rules[i], true); + if (unlikely(ret)) { + rte_errno = EINVAL; + goto free_bwc_rules; + } } } -- 2.25.1