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 2342B43B79; Thu, 7 Mar 2024 09:10:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 113E342D87; Thu, 7 Mar 2024 09:10:02 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2069.outbound.protection.outlook.com [40.107.212.69]) by mails.dpdk.org (Postfix) with ESMTP id 3DB85402F2; Thu, 7 Mar 2024 09:10:01 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X6QlM6ZS8sEm6bdYp0Xe977Np+q/jr5Y1DoDZ07cHEJ6paTWJ1JTUK+nlDLyG6fakxbMeUhEcaf5WlkzjPAqedzuRrUgboTCnUGvLJvzcrGj9fdedONdzbo/8IuhRajFzjLrSB8T1LwxkMmI/WFf+KRORMh2FE3f6yrtZzttNfvY6atN88l8rxBYcnb8tNG4xIIf4r0Rc8wHc51q5TapzHYHU+ZYmrwAPadbdr2yFpc1AeEBiBlM4z0fnmeLVjbwkKmtlMrexjI3kk14dq3mqOOBCFbkIZjZE103uj+yNSlybqO90q2hVq+diuj27oHkAJk7xNMLcWoaY2YC++BNsQ== 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=iRAzQ9BQTopODTvdw77qX/CpGreu/LHRp8jV1POrQew=; b=BfOYMWcmq/XJNKQ4Yj5Kp1lKk/Lxwd3q5rAYI1mADKMf0NBn38/XCPDdEmn+IMJ9+siqPZ48OWKxY2H9LHahoFcrJ0VvYcEtniAdiMk35noevdoHMy7kTNukG7idd/Bue6y3HxNQgkeIWjhzwmoHIRCSFqrk5XNYH7p0ThgLZd0YJwIc/sirBzOu9Fmw7tG7dWjEN4ujqn1jsfgsrLauZ26dh456OV5yT6NEAJ+NY59cLia59iQbHKptWf681gWwSs2/A5aBKEHli3enABksMViFr7Xf2Dmv13bL66dcvgaEWroMhVmQRJXZ7QgpcawUa7f+c7O0BUisBveKhUqn3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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=iRAzQ9BQTopODTvdw77qX/CpGreu/LHRp8jV1POrQew=; b=ISd4YVN2hxJH9UNEhpHSQjCUm/D6uWyAj/rtubhOfNvW0eED50CA5dYtOYBLjYGxRd/3lP/WDU4xcEbHBfXKBEqPm7pu2rsOk9hA9T2dzUhx4fUqTnykyG3S2ulDK72RyFzhp1xm+L1OzbeYiwuEmGRCsGRy673/GSzortpftm55wohgjwdOFvC53iRzcVtIj1II2fWMpg1j5/+iBaIuU8gyioqFRL4b4ONR/PMWSkXITeV1+OEBWpCFCqLv95NZDQpERMkQyMKq8njrxOpWwlzNwiaNAnSNEp3WjJqBchWxo0pESSDa83WSL+UuhhcvTajOCezGAeaVDiTVhcJCdA== Received: from DM6PR11CA0002.namprd11.prod.outlook.com (2603:10b6:5:190::15) by MW6PR12MB7072.namprd12.prod.outlook.com (2603:10b6:303:238::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.39; Thu, 7 Mar 2024 08:09:57 +0000 Received: from DS1PEPF00017091.namprd03.prod.outlook.com (2603:10b6:5:190:cafe::68) by DM6PR11CA0002.outlook.office365.com (2603:10b6:5:190::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.26 via Frontend Transport; Thu, 7 Mar 2024 08:09:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DS1PEPF00017091.mail.protection.outlook.com (10.167.17.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.11 via Frontend Transport; Thu, 7 Mar 2024 08:09:57 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 7 Mar 2024 00:09:46 -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.1258.12; Thu, 7 Mar 2024 00:09:43 -0800 From: Bing Zhao To: , , CC: , , , , , Subject: [PATCH] net/mlx5: fix age position in hairpin split Date: Thu, 7 Mar 2024 10:09:24 +0200 Message-ID: <20240307080924.310710-1-bingz@nvidia.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017091:EE_|MW6PR12MB7072:EE_ X-MS-Office365-Filtering-Correlation-Id: d37ed17d-7037-4ef8-4c2d-08dc3e7dfa92 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iRdDzuUrBSgoMYe8d0yjcU+ofx5GURLexPR4XQLyGT6hBqJIG+/oaAh0QPcDZ9rX3LXRypG5oDjxYt5EWWGOOotgGRiIdVA026vRWRG2OFUpS7+cBJLT58ibTv8Gt4Ld+kK1rtIlXKmVTbRLXXe8bfF2QBd4d/tDL403K5feKhSoi5YETd7yn8hK4DpoDKAZyzE1Fqizlh+I8NfOI3wlXwNrwUNCzIZEVTCBFuHFjKSwoJWabyxVCwj5Me+PdK2nXc2aUvs6BEdBBr379QSVgsusIRA8hsVD2FQPbig3TExnatGZDR+CXeMMe91m90SLJ/fXxWftr99HMpQy7Bw6z4+LyLlV1ruXpmaE4ol0DZuBAE7+GUSLRyVTSjJaOX/0tetqrtmVNmL/UYS2lZBoHZMn5zEL4OCt89rgOxhjnDpWmefmUrrmjLtDITWePUPuNo/YhUncj5FtPff8r+acVr8EBIKXPnKbB/yb7ub8gXuoWp1cZFHsSZlwvW3NnFu/OHcGl/zTrEmhr7MnEhIy/Wac5qrbFXtGw9UIe8bOhu8JYbwePM2j66VpE0dxWhzCK06J+1eU3Qzc2Kh68gJK5QFttuGhBUTuKnbISOwLxO4k5tyAYlv+TQnx1zYukLusK+VMJsCXYRf2mHoyggv360Qfc7wNnhbqgPOM4X1bqEI+r68NeykaQokaGhNRyH3zGfTonLN1FyDbpZRT62ngFMgyqpIlP3DVSkIRrd22b+rWomMcqb+/KDAPkp51/0A4 X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(376005)(82310400014)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2024 08:09:57.4087 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d37ed17d-7037-4ef8-4c2d-08dc3e7dfa92 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.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017091.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB7072 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 When splitting a hairpin rule implicitly, the count action will be on either Tx or Rx subflow based on the encapsulation checking. Once there is a flow rule with both count and age action, one counter will be reused. If there is only age action and the ASO flow hit is supported, the flow hit will be chosen instead of a counter. In the previous flow splitting, the age would always be in the Rx part, while the count would be on the Tx part when there is an encap. Before this commit, 2 issues can be observed with a hairpin split: 1. On the root table, one counter was used on both Rx and Tx parts for age and count actions. Then one ingress packet will be counted twice. 2. On the non-root table, an extra ASO flow hit was used on the Rx part. This would cause some overhead. The age and count actions should be in the same subflow instead of 2. Fixes: daed4b6e3db2 ("net/mlx5: use aging by counter when counter exists") Cc: michaelba@nvidia.com Cc: stable@dpdk.org Signed-off-by: Bing Zhao Acked-by: Ori Kam --- drivers/net/mlx5/mlx5_flow.c | 1 + drivers/net/mlx5/mlx5_flow_dv.c | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 6484874c35..f31fdfbf3d 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -5399,6 +5399,7 @@ flow_hairpin_split(struct rte_eth_dev *dev, } break; case RTE_FLOW_ACTION_TYPE_COUNT: + case RTE_FLOW_ACTION_TYPE_AGE: if (encap) { rte_memcpy(actions_tx, actions, sizeof(struct rte_flow_action)); diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 18f09b22be..df23c8eb6c 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -19363,8 +19363,7 @@ flow_dv_get_aged_flows(struct rte_eth_dev *dev, LIST_FOREACH(act, &age_info->aged_aso, next) { nb_flows++; if (nb_contexts) { - context[nb_flows - 1] = - act->age_params.context; + context[nb_flows - 1] = act->age_params.context; if (!(--nb_contexts)) break; } -- 2.34.1