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 17965A0A0E for ; Mon, 10 May 2021 18:17:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 078A14003E; Mon, 10 May 2021 18:17:31 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2050.outbound.protection.outlook.com [40.107.236.50]) by mails.dpdk.org (Postfix) with ESMTP id 83E244003E for ; Mon, 10 May 2021 18:17:28 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RTWXbi8cNc6tHO8KQObN6ZuqCXlMnfI/0mFRKklo64nQwSxZQZNyvj08H16lMRoMlYjZ+2QoN9cQXMRJcj5A1tqsb8z/QmxuXw5tolpnl2Z/KX7+A+nSD7PI1OhwOMac5/0GzsHhaVknj32UDIgm+lJVDFiTAhe6YF1RhoErWAIxMc5dW9s3Orn8bzTF5oq3ru2J5bHqlFCwq2yOutSceeWkJPzkH81RsN9saqQALe7+jYOmvKub1X1+XIgAMJUVtCHxwjORzMTH4wTLg1856qDs1elf5MbS+bG0DU6ylMvsKEweKXjt00+VyTogTi/5OqIq/hqeDCvPvmIFqY6/Xg== 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-SenderADCheck; bh=oIPFhBrbPctfn1MGYwaml5ErUBkT+qPnbInTNe62qSs=; b=AJYNjO1eflL14BHb6wxGCTO+iymNys4P+li6vvH8l8Ri0Ev0Zo6a5XFFEIWQ9ooLH3JtrekgP/fAYSlXmi1vB8GEhH7okxXT5eIbUWy3D0cyrf6gZKG188xkzwlfGgKQWynoZMVQct3ySDjxL0s1v5scgSY9D2Bdn5I8x3vhIqsJb+QwtufB38/gdXUP9aG1oN7iFQoSO0YuGcUTAnQQeJMkvhMQGLzQ8yWT6JXmMp3xp6Nh/ZxbZRGC6kXarl/jtjwgdHEWf5OVUIIA2FpXz43jEt6hB4LFVb8OjylVoQMqo4bgwohvt8bCH2bjX/N+VtqG0OsedFl1FkabuxpPiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none 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=oIPFhBrbPctfn1MGYwaml5ErUBkT+qPnbInTNe62qSs=; b=GC6nt+K/KT3hXA4GW5uxXaKW/kTbBcESILjxqVsLMlbIzYDoI0Xw1OHBTa05oKYBO6vw9zmkqhSt/7Ch4NLkW6zh8xQTOqHFcxjCec2y74uOa3c4JNgIKK93GcRw6XNkQIgTchbId/Kc0VV2AfaVJUUKUCDpVAaQwA5ZU3R9j8oo9NC/8Yb2cZYBjmXMCq18NodcwguBT//YGtLIiOyp5pQwo94Gtmpu0Qfmuz/Sz8DziDnxbkAjpuej0O3lpUHXSZxk+WfKZbAP4qJZ/1Y3jZLl2Wrow0EiZiJw6hawlQnGqBfG2U+FqfmswvErgH3bUMszLNo9xRSQcG+95Q0J5g== Received: from DM5PR07CA0161.namprd07.prod.outlook.com (2603:10b6:3:ee::27) by DM6PR12MB2954.namprd12.prod.outlook.com (2603:10b6:5:188::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25; Mon, 10 May 2021 16:17:27 +0000 Received: from DM6NAM11FT045.eop-nam11.prod.protection.outlook.com (2603:10b6:3:ee:cafe::bb) by DM5PR07CA0161.outlook.office365.com (2603:10b6:3:ee::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Mon, 10 May 2021 16:17:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by DM6NAM11FT045.mail.protection.outlook.com (10.13.173.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4108.25 via Frontend Transport; Mon, 10 May 2021 16:17:27 +0000 Received: from nvidia.com (172.20.145.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 10 May 2021 16:17:25 +0000 From: Xueming Li To: Xiaoyu Min CC: Luca Boccassi , Matan Azrad , "dpdk stable" Date: Tue, 11 May 2021 00:01:33 +0800 Message-ID: <20210510160258.30982-144-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210510160258.30982-1-xuemingl@nvidia.com> References: <20210510160258.30982-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [172.20.145.6] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05d56358-a202-41df-fb5b-08d913cf1a7b X-MS-TrafficTypeDiagnostic: DM6PR12MB2954: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fyy9BPwN8cHu9N+mT3VkRyNPKbRavUPSPlUnp2+HbUSKWlbobxrOzNo0sFQBJtA2fT2uKWklsguEzihbJVUmUHQWkWjMtJ33EicGVo6ltGFQkxNFRsC/+t9bRmOJAG7DWXtY7mkSDepFbE8dzENsO94KqzQ/T4loIaqbEzn1jB4paEZSUtZKAaQNvnH4bi2wKdBjTGm9WH5Obc4XdmRMrsVDlvaukujwRY8bsl1uSwDE4yYBlqLxY5qSZfirJg38elf8CoH2wrac/GXV2x/Y9vZoPbY5J68EpEvnxQ8UcKfHWP3ajqxDxiSmgQVTSWCUprrZUJKA6vIYgCIe875+jUhZJgStgwSxWUEByS085WYsFme8Dykdt/z2Ln3RlDjIah2A0fBOX0+NWbzW7BI6ygvBIFbtOzzL8il+ScxXOBnjZWH74lbUnfDBUULQRYBuAy9VVv7SOM26YwWfFlbOXMHGyGdXH2X2X8RdkdHKiUovTBnN6iOS/4ZjJAjO3ud0aaJKOUghKzTdvfwiUhn4INdePIqSeBIhXWqF91U+ZRksis8sczw1pcly51uCjjmVLqxvEMqi/vmi37OY+36UlE5KdyDWIihjqZWnAU44PBeN/w3eHn3VGDCi9t94JieX3uPVTiHhzcWx+ExylvFQQ8GnK7PzTmcoNiPNF3lf4sDKXjC4fV6bm9L7D78VeikmzNTjWRWc5duof5Es+JFbfHoKZ1EJslaQGjJBuvFXq3B1xtdMvvUeBH1re1wgxSjF+dVLFopk3dsaxh+DblXvZA== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(346002)(396003)(376002)(39860400002)(136003)(46966006)(36840700001)(1076003)(6862004)(26005)(186003)(16526019)(4326008)(356005)(82740400003)(82310400003)(316002)(36906005)(37006003)(54906003)(47076005)(8936002)(6286002)(36756003)(6636002)(55016002)(83380400001)(8676002)(70586007)(2906002)(966005)(70206006)(336012)(36860700001)(86362001)(53546011)(478600001)(7696005)(2616005)(6666004)(7636003)(426003)(5660300002)(143363002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 May 2021 16:17:27.1887 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 05d56358-a202-41df-fb5b-08d913cf1a7b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT045.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2954 Subject: [dpdk-stable] patch 'net/mlx5: fix shared inner RSS' has been queued to stable release 20.11.2 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 Sender: "stable" Hi, FYI, your patch has been queued to stable release 20.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/12/21. 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/steevenlee/dpdk This queued commit can be viewed at: https://github.com/steevenlee/dpdk/commit/43af55f5bfb54bd8b66e07728dc769c2ca12644c Thanks. Xueming Li --- >From 43af55f5bfb54bd8b66e07728dc769c2ca12644c Mon Sep 17 00:00:00 2001 From: Xiaoyu Min Date: Fri, 26 Mar 2021 13:20:20 +0800 Subject: [PATCH] net/mlx5: fix shared inner RSS Cc: Luca Boccassi [ upstream commit b27bbe81579202409de8bb5ca307f9e10d5bb9e2 ] The shared RSS action use the _tunnel_ information which is derived from flow items to decide whether need to do inner RSS or not. However, inner RSS should be decided by RSS level (>1) in configuration and then to create TIR with 'IBV_RX_HASH_INNER' hash bit set. Also, for one shared RSS action there is only one set of TIRs - outer or inner could be so the unnecessary set of TIRs are removed in order to reduce resource. Fixes: d2046c09aa64 ("net/mlx5: support shared action for RSS") Signed-off-by: Xiaoyu Min Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.h | 2 -- drivers/net/mlx5/mlx5_flow_dv.c | 48 +++++++++++++++------------------ 2 files changed, 22 insertions(+), 28 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 91f48923c0..76c0208a85 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -1082,8 +1082,6 @@ struct mlx5_shared_action_rss { /**< Hash RX queues (hrxq, hrxq_tunnel fields) indirection table. */ uint32_t hrxq[MLX5_RSS_HASH_FIELDS_LEN]; /**< Hash RX queue indexes mapped to mlx5_rss_hash_fields */ - uint32_t hrxq_tunnel[MLX5_RSS_HASH_FIELDS_LEN]; - /**< Hash RX queue indexes for tunneled RSS */ rte_spinlock_t action_rss_sl; /**< Shared RSS action spinlock. */ }; diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 347c3a1c13..8e64b82e10 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -10675,10 +10675,9 @@ flow_dv_translate(struct rte_eth_dev *dev, static int __flow_dv_action_rss_hrxq_set(struct mlx5_shared_action_rss *action, const uint64_t hash_fields, - const int tunnel, uint32_t hrxq_idx) { - uint32_t *hrxqs = tunnel ? action->hrxq : action->hrxq_tunnel; + uint32_t *hrxqs = action->hrxq; switch (hash_fields & ~IBV_RX_HASH_INNER) { case MLX5_RSS_HASH_IPV4: @@ -10725,14 +10724,12 @@ __flow_dv_action_rss_hrxq_set(struct mlx5_shared_action_rss *action, */ static uint32_t __flow_dv_action_rss_hrxq_lookup(struct rte_eth_dev *dev, uint32_t idx, - const uint64_t hash_fields, - const int tunnel) + const uint64_t hash_fields) { struct mlx5_priv *priv = dev->data->dev_private; struct mlx5_shared_action_rss *shared_rss = mlx5_ipool_get(priv->sh->ipool[MLX5_IPOOL_RSS_SHARED_ACTIONS], idx); - const uint32_t *hrxqs = tunnel ? shared_rss->hrxq : - shared_rss->hrxq_tunnel; + const uint32_t *hrxqs = shared_rss->hrxq; switch (hash_fields & ~IBV_RX_HASH_INNER) { case MLX5_RSS_HASH_IPV4: @@ -10821,9 +10818,7 @@ flow_dv_apply(struct rte_eth_dev *dev, struct rte_flow *flow, hrxq_idx = __flow_dv_action_rss_hrxq_lookup(dev, rss_desc->shared_rss, - dev_flow->hash_fields, - !!(dh->layers & - MLX5_FLOW_LAYER_TUNNEL)); + dev_flow->hash_fields); if (hrxq_idx) hrxq = mlx5_ipool_get (priv->sh->ipool[MLX5_IPOOL_HRXQ], @@ -11415,8 +11410,7 @@ static int __flow_dv_action_rss_hrxqs_release(struct rte_eth_dev *dev, struct mlx5_shared_action_rss *shared_rss) { - return __flow_dv_hrxqs_release(dev, &shared_rss->hrxq) + - __flow_dv_hrxqs_release(dev, &shared_rss->hrxq_tunnel); + return __flow_dv_hrxqs_release(dev, &shared_rss->hrxq); } /** @@ -11462,23 +11456,25 @@ __flow_dv_action_rss_setup(struct rte_eth_dev *dev, for (i = 0; i < MLX5_RSS_HASH_FIELDS_LEN; i++) { uint32_t hrxq_idx; uint64_t hash_fields = mlx5_rss_hash_fields[i]; - int tunnel; + int tunnel = 0; - for (tunnel = 0; tunnel < 2; tunnel++) { - rss_desc.tunnel = tunnel; - rss_desc.hash_fields = hash_fields; - hrxq_idx = mlx5_hrxq_get(dev, &rss_desc); - if (!hrxq_idx) { - rte_flow_error_set - (error, rte_errno, - RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL, - "cannot get hash queue"); - goto error_hrxq_new; - } - err = __flow_dv_action_rss_hrxq_set - (shared_rss, hash_fields, tunnel, hrxq_idx); - MLX5_ASSERT(!err); + if (shared_rss->origin.level > 1) { + hash_fields |= IBV_RX_HASH_INNER; + tunnel = 1; + } + rss_desc.tunnel = tunnel; + rss_desc.hash_fields = hash_fields; + hrxq_idx = mlx5_hrxq_get(dev, &rss_desc); + if (!hrxq_idx) { + rte_flow_error_set + (error, rte_errno, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL, + "cannot get hash queue"); + goto error_hrxq_new; } + err = __flow_dv_action_rss_hrxq_set + (shared_rss, hash_fields, hrxq_idx); + MLX5_ASSERT(!err); } return 0; error_hrxq_new: -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-05-10 23:59:30.319968600 +0800 +++ 0145-net-mlx5-fix-shared-inner-RSS.patch 2021-05-10 23:59:26.560000000 +0800 @@ -1 +1 @@ -From b27bbe81579202409de8bb5ca307f9e10d5bb9e2 Mon Sep 17 00:00:00 2001 +From 43af55f5bfb54bd8b66e07728dc769c2ca12644c Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Luca Boccassi + +[ upstream commit b27bbe81579202409de8bb5ca307f9e10d5bb9e2 ] @@ -16 +18,0 @@ -Cc: stable@dpdk.org @@ -26 +28 @@ -index 8324e188e1..00b6cd97b9 100644 +index 91f48923c0..76c0208a85 100644 @@ -29 +31 @@ -@@ -1129,8 +1129,6 @@ struct mlx5_shared_action_rss { +@@ -1082,8 +1082,6 @@ struct mlx5_shared_action_rss { @@ -39 +41 @@ -index 223a7d0e36..264dd69a72 100644 +index 347c3a1c13..8e64b82e10 100644 @@ -42 +44 @@ -@@ -11895,10 +11895,9 @@ flow_dv_translate(struct rte_eth_dev *dev, +@@ -10675,10 +10675,9 @@ flow_dv_translate(struct rte_eth_dev *dev, @@ -54 +56 @@ -@@ -11945,14 +11944,12 @@ __flow_dv_action_rss_hrxq_set(struct mlx5_shared_action_rss *action, +@@ -10725,14 +10724,12 @@ __flow_dv_action_rss_hrxq_set(struct mlx5_shared_action_rss *action, @@ -71 +73 @@ -@@ -12041,9 +12038,7 @@ flow_dv_apply(struct rte_eth_dev *dev, struct rte_flow *flow, +@@ -10821,9 +10818,7 @@ flow_dv_apply(struct rte_eth_dev *dev, struct rte_flow *flow, @@ -82 +84 @@ -@@ -12654,8 +12649,7 @@ static int +@@ -11415,8 +11410,7 @@ static int @@ -92 +94 @@ -@@ -12701,23 +12695,25 @@ __flow_dv_action_rss_setup(struct rte_eth_dev *dev, +@@ -11462,23 +11456,25 @@ __flow_dv_action_rss_setup(struct rte_eth_dev *dev,