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 D02EE44145; Mon, 3 Jun 2024 12:57:17 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B7E4242E8D; Mon, 3 Jun 2024 12:57:13 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2055.outbound.protection.outlook.com [40.107.237.55]) by mails.dpdk.org (Postfix) with ESMTP id CBC1D42E8C for ; Mon, 3 Jun 2024 12:57:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mbiuzeGoNXZegDWPeB0LN8Fx0hJ1qcpiWfgaoTrbc04ogKCv8Sco0izsgrITICpd3mjUnS59Z52xO4xQdrDsUGMlMb8Slgr9LPZcw/4yy4vDRoKvDhZyTfAMtb3CkZqWO/4eQogDNX4hPgxcZ8Fk4lFVUwalf3qWMrBYxz2B+ouptBWudcM+FqORfb+GLrn0PhnaszfWc4wjrdUFewaRShdJEFEyEQMyJ37SbDtO+KABIqDlnmCqY5WUhkKTzc+dlwLS55AyPzvypuwDyqqvN/V1GHsb6v7nKbAkReOOeZX6w7I997O8WUfyE9+AglrU3MzyLZogD2KZEPmLFefoTg== 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=X80rVcyy9UIQSKpfaI3xAqHkfufUB15FLcPIQLGPJ7DtdyEN6xSTNWwWVF4c5CKTDz/AwwAvS5XpQtCI2VuZnLfyzutgoNGuRjZ7Mf1i4Felqb11WgbKke8FWBwU1hAQx0KQ46Zg9GJ4zPhBiwsxdq+ofBmcMEGtiVQVcchVTQ5oMf9/Qv0Xcy150RxqQVdVzBFrQqYhO1IF73aU4YFROwV9FS2qILkBp2weMUrTWa+2sKw37DPlCIg3+3XcltxuWeegW2Wgik/BLWPOt3Qiwc7SrdMb2SR64XAzR0Om5BACyXydMttNfSRKSoWQXgQYpSG5g566QLOcwJpjqkis+g== 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=Pd81esxhIaEPnNoRbrlE+vdp5JOAGRjgspDfOi72V93R/xQeeGnl7sI/9+Lm8RMLeSkc1oa1anUoFqyt3VXK9bGzRA8zjR3ZmjW6zIoREddAUUdiFGUUZLKvYwadR6aIq4ic4BD7qCTvRZLNgZ+7PH8MC+Da3SbuN4fsxFHojePByNy+VMD3Iq1tGL6Q1fP83xOT2sFJIuSMuKC+TMMfYzr2Iz0+GknFJ+k1S0ejGQ9IL4LFnW/XjHZw64smbXPwzj2V/8Xsb7hQEV8adbXwL22xQFHS/m1yiLkfzYJFap46BxHAKUpx2lGUR5j/YHQm7i9cufUV6JymTaWCSaJSVw== Received: from BYAPR07CA0016.namprd07.prod.outlook.com (2603:10b6:a02:bc::29) by CY8PR12MB7244.namprd12.prod.outlook.com (2603:10b6:930:57::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35; Mon, 3 Jun 2024 10:57:09 +0000 Received: from SJ1PEPF00002319.namprd03.prod.outlook.com (2603:10b6:a02:bc:cafe::da) by BYAPR07CA0016.outlook.office365.com (2603:10b6:a02:bc::29) 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 10:57:09 +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 SJ1PEPF00002319.mail.protection.outlook.com (10.167.242.229) 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 10:57:09 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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 03:56:56 -0700 Received: from rnnvmail204.nvidia.com (10.129.68.6) by rnnvmail205.nvidia.com (10.129.68.10) 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 03:56:55 -0700 Received: from nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.6) 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 03:56:53 -0700 From: Maayan Kashani To: CC: , , , Yevgeny Kliteynik , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad Subject: [PATCH v3 4/7] net/mlx5/hws: bwc - abort rehash on completion with error Date: Mon, 3 Jun 2024 13:56:31 +0300 Message-ID: <20240603105635.11124-4-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20240603105635.11124-1-mkashani@nvidia.com> References: <20240602102937.197117-1-mkashani@nvidia.com> <20240603105635.11124-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: SJ1PEPF00002319:EE_|CY8PR12MB7244:EE_ X-MS-Office365-Filtering-Correlation-Id: e8ee727e-73bf-4e62-073b-08dc83bbea7c 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?QXY92nKVK7YQRG+tDJku4/skyC7e/UQbY7P6kV8mfW/DYYPnLutVosrnSDFl?= =?us-ascii?Q?yqktM0wnhI9jc2UehahenEdedyqEjsnMJhfDTUk5nY4o+LxX75TJdIFvWmb3?= =?us-ascii?Q?njKk0nfEM+o8kzxHbgFMltMyRGiTnO1OLd5hRH79va1SCIiS8NA44DW1+GYA?= =?us-ascii?Q?/80LLNrREFLAQucvF172PZhVqK0k2JGBPAmK8+NMouauIN6fp69u2OjF2+LZ?= =?us-ascii?Q?DQnc+YM710tber8EW3zU4hn4E/IxdHd43PNHH9QeJC88E4mAB2+BK4RMe7c5?= =?us-ascii?Q?IVsWI07hznfZ9lknWXgkXbKf3X9QFR857pnR9G3PxXCQi43imHn8KURPHNRX?= =?us-ascii?Q?fW8wegumXt88u8CK4qz+2Rw4MiWqMgmE7CC+p6v8vl9OEXQcniK1X095KR69?= =?us-ascii?Q?UVng2zWj2PFhOhL+u7egvBbu1q2EObrPdX/vDoXV+eNjg546b4SAbDZYBIz4?= =?us-ascii?Q?phSQR9mFk/Qiba3Cx8V9di+VuYpKo4p5qJ9NJ0K+FPBavihdG6r/BY57wXFF?= =?us-ascii?Q?t+Ff1YodLM4onTO+Xu38Kke6z4i7lbSovQCiEp4A9Y/yreiYLmO1tzFiqrPu?= =?us-ascii?Q?xn/wrk+80St4FmmCJzBsXDmMoBhy1veGrVsFekA+MPWcg895ACD27uS9/Ulo?= =?us-ascii?Q?102he0wOLH5+5ORQYK0ljQZnli4j5g8QWGfGTs49/2xpIImApydpFYl/0iEc?= =?us-ascii?Q?0ocN38P65GASJhgtj3kMcLyyHhsrFgManPAAsU/hW1ngiDkXLXAmr/+BDHFf?= =?us-ascii?Q?w88IVikauv2kK7uIeFKNYwyQbCxHsFzlXIZo2z9wKwpooCTiRlUrQWXYJori?= =?us-ascii?Q?HYdfy1fSLTUz3v73Iyh2RzGrU5Peq7n+EbLHCPL0kL03IHwFdKAvDyO1n+9y?= =?us-ascii?Q?PRSdFE4MgnXLb0xjl7Krg2PWWU/SGrrgun789gwYtydt5peeiZrhSny+cbsG?= =?us-ascii?Q?1CpCQ485Wmy/ewChNPTgrd0gm3sBS20aDC2HWwwtZ1N6e53wnD8L76ikb0A+?= =?us-ascii?Q?whcRUrWWAV1qj0mTMZUdgs5ytlK3IosDpItq27ivpxpBzShFzX3kuMwk2IoT?= =?us-ascii?Q?+zplwYw7LG8Fc8FEtJmeldpuUfQ/Z55eWn/KaC/mv7elJYFZth9i964oDQqE?= =?us-ascii?Q?mJJpZdIjF8J81kpcWf+JjiXzPlPVjTowt2dd0qzgqWtInLAzJ+0FYw5Zzs6C?= =?us-ascii?Q?ZTIuDTZkHvtNrcc8wWuZ7JGcRJvScmFQyQtzAnQdtBZgZ2EKdb0t26Y3EX3o?= =?us-ascii?Q?6i1HnrmnCyNLAPcH1GKvHT6aRIHRdzka0s2NaLG4BRO1u790E1eAcG9/iB+0?= =?us-ascii?Q?Loema6oX7ePS6y5WL1pvpklp6OwI7H7dAuJmoiB66RMEv0nhhhBD05rTbOa+?= =?us-ascii?Q?13s1GbQ=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 10:57:09.5575 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e8ee727e-73bf-4e62-073b-08dc83bbea7c 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: SJ1PEPF00002319.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7244 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