From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C197DC54E4A for ; Tue, 12 May 2020 12:22:31 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 5728D20661 for ; Tue, 12 May 2020 12:22:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="qEtu2scR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5728D20661 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mellanox.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 29C5D1BFEE; Tue, 12 May 2020 14:22:18 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2049.outbound.protection.outlook.com [40.107.20.49]) by dpdk.org (Postfix) with ESMTP id 3E1901BFE1 for ; Tue, 12 May 2020 14:22:15 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dOKUvlhZXuX2iI+7gtq+/zZt3Pw5r+B0F4ii/KHQAEmDHXS7JgZXJ/Bc4aQx3mWUbAKPSyDE+z8ihm1+hebz65Hya5ICKGwPZ4X1OLa3NoQBHntIxfLRPgDvVb+BrThZeSqFeHmXTzEbo+ccaO5R2Jm0V1GcorXIL8lgqBsL4/PX5fogxG2Hh5WEjY8/mxTz8kDvn8ByQZqTWRxqVwsfFc6TVuJfp7Z9b1xAwoTkFx+CYI/cmFC5/FsAnwN0VTMOCLekzBy27aD1DHNIf1YQG3p+B4R+lMceSR3Zsy6QISLrWcRU0qO7SChc8llSe3EbvcFQfSb9MAKfZO0K1ZCZ7w== 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=Sy26Wi/CSECeB3WfUQ0/KnCaEMmYLibzuZAFXDWM+AQ=; b=b288e+lfXK1IOQT0jInTlmn387gTAGNi4pRtONHTTvZD1KkuM55NOYY32KLH3agzoCMvS8doUAA2uJBfpINB6YHTgTMgjSFReoY5i5Hfp3GvapR7RTDrQC0cA3gJoLF8bqns9FqscvkEo5TlHhJVUr0co9OKFZpqQXx3TuLHpvZA7Id0IIXfS/qjBfofyVinNYztsyGURpLlnr4KZblxfUATK1ClK8TtAd1Q1EY1TWk6nOg51kGVjco3x4XXDgRSw+1NdrPRhI/3wFP80Mnj7ggnKHcRQ4rg9qd5iKqhJb0ylf5tq1CV/8ozs77OYJEXjFCjG2s4+NmrLU9lrTAkwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Sy26Wi/CSECeB3WfUQ0/KnCaEMmYLibzuZAFXDWM+AQ=; b=qEtu2scRr7tNGKZj7zKSFNnoSyVRju4Fke6zefan8rzxwDJxQMBxOm+uOi2tf6JZKOpBBmrGHTjjGdhGUBO4TfdOV79q8GTKZ9UCN3c7DFdS4v9Plb2SEg2YF3BtoTUbgoi5DF1FtCfsAur8kzdSYUxXnxPCtobOgf9/+t7V0tM= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR0502MB3874.eurprd05.prod.outlook.com (2603:10a6:208:1a::29) by AM0PR0502MB3844.eurprd05.prod.outlook.com (2603:10a6:208:20::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.27; Tue, 12 May 2020 12:22:14 +0000 Received: from AM0PR0502MB3874.eurprd05.prod.outlook.com ([fe80::2cea:8f0a:cb2f:2a85]) by AM0PR0502MB3874.eurprd05.prod.outlook.com ([fe80::2cea:8f0a:cb2f:2a85%6]) with mapi id 15.20.2979.033; Tue, 12 May 2020 12:22:14 +0000 From: Shiri Kuzin To: dev@dpdk.org Cc: matan@mellanox.com, viacheslavo@mellanox.com Date: Tue, 12 May 2020 15:21:45 +0300 Message-Id: <1589286106-23411-3-git-send-email-shirik@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1589286106-23411-1-git-send-email-shirik@mellanox.com> References: <1589286106-23411-1-git-send-email-shirik@mellanox.com> Content-Type: text/plain X-ClientProxiedBy: AM3PR07CA0138.eurprd07.prod.outlook.com (2603:10a6:207:8::24) To AM0PR0502MB3874.eurprd05.prod.outlook.com (2603:10a6:208:1a::29) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from mellanox.com (94.188.199.18) by AM3PR07CA0138.eurprd07.prod.outlook.com (2603:10a6:207:8::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.12 via Frontend Transport; Tue, 12 May 2020 12:22:13 +0000 X-Mailer: git-send-email 1.8.3.1 X-Originating-IP: [94.188.199.18] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 634ba28f-402e-4ec3-ffd3-08d7f66f1a65 X-MS-TrafficTypeDiagnostic: AM0PR0502MB3844:|AM0PR0502MB3844: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1079; X-Forefront-PRVS: 0401647B7F X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M+w8KjZLswCxwB7Bxj4hCnBeF5qGS/x6/cIclXkGWmPiyWIu8zPhHb+Qxa1dIKk6v8mBN2Y/fohiSWCnulsh+lXEk/8dxw9nJRjfwuC/oJiO89mv+4y3tsLUhumF1ziPdFS7StJphCqh4aW5OFZzJNvvtSv9Hs8OBGr5NvdmWSuDdgxJFQadNbX2TgEgYvpgc4SuPyoyHTpLakgKS+zY3yhkVFbu+gZTxQ5zhat08O+IeyD5BIZYBXOHUFrVxluQ0pYP6jEXd/xVHR8mNwOFmYfOJMeEoeR2WYb3t65zxJvHOAOA9n4zLMOLxFOy6sPs5kui00E6TDGbWB6VbK5XB3h2znm+lZmAdVfTSJY1JCAsEok0XJkH7dcf0Q1v3qd8emHNDNNAAgW3fKx9k2xX4DQgUAEIe8451rkfBm6HsSgLuwQPwBj4IjxmACvVNoFKXteGF9ZMDAYtOHdaAfxpqO1BfIXG3wjrMsVJMV7Xnoix9YIivdMcCJ9KX30TlEx5GSPlW5Fulvma3eA/uuwF4A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB3874.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(39860400002)(376002)(136003)(366004)(396003)(33430700001)(8936002)(4326008)(55016002)(86362001)(107886003)(5660300002)(956004)(316002)(66946007)(66556008)(66476007)(2616005)(2906002)(52116002)(186003)(26005)(7696005)(16526019)(33440700001)(8886007)(6666004)(6916009)(8676002)(478600001)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 1VHC+zYi58Rh1uElcgl1mIGBZT78v170K7DQ8GML1DFhrIG+Yq1ei8YSL7OEVwfpTn76I8wwQY9y/grD/Lx77ZgEXOJuiJau2ZbU3MD4SuSg98UMatgmOXwWlyGckNDXKjLAG25XuYggJgnusrCWKn+pBIoC8Pp5h2p4DwzpjuIyxEPFKiobfwh0uSEavjPP78Rq7wM9WzTkTpfTr6MM10Ilfql9icyQ1ZOHLYpltKz1QHvCg7TxI7t2pw2s5Xzg6kcG1FkF0YT2VdppTgS5XmViL+PTXUOBFgUy6SLmEQ/t87l3Z7pfGVJ1qZk7tL3Ihet2EGQMG6v3e/fpUmSvKiODLLhWRTcWMwCAkm8MA/ei2I3JMFFmI6zuD1DRopmmkJ0dCt1yGtqSKJPpB94+isZlQajfFAxQMk5K6xbxab3l9eEfhsJKGv3gnopkvGR05WCUYgjMZHPvvvvpjXN9am/MwIB4CslB3BWOtYHNDWM= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 634ba28f-402e-4ec3-ffd3-08d7f66f1a65 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2020 12:22:14.2488 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gQOjfMO5f9uc0WsnSepT5KemmcUtomMgpPRsW8uoTipMzKXddUU+fCYiwLVrzpw7lFU46Zq9Wu/O9gJDfiV//g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3844 Subject: [dpdk-dev] [PATCH 2/3] common/mlx5: fix relaxed ordering count object X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In order to improve performance relaxed ordering was enabled when creating count object using Devx. Currently rte enables this optimization by default when using Devx. This causes an issue when using firmware that does not have this capability causing a count object failure. In order to fix this issue a check of firmware capabilities was added before enabling relaxed ordering. Fixes: 53ac93f71ad1 ("net/mlx5: create relaxed ordering memory regions") Signed-off-by: Shiri Kuzin --- drivers/common/mlx5/mlx5_devx_cmds.c | 4 ++++ drivers/common/mlx5/mlx5_devx_cmds.h | 2 ++ drivers/common/mlx5/mlx5_prm.h | 3 ++- drivers/net/mlx5/mlx5_flow_dv.c | 8 +++++--- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 230ac58..fba485e 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -451,6 +451,10 @@ struct mlx5_devx_obj * attr->log_max_hairpin_num_packets = MLX5_GET (cmd_hca_cap, hcattr, log_min_hairpin_wq_data_sz); attr->vhca_id = MLX5_GET(cmd_hca_cap, hcattr, vhca_id); + attr->relaxed_ordering_write = MLX5_GET(cmd_hca_cap, hcattr, + relaxed_ordering_write); + attr->relaxed_ordering_read = MLX5_GET(cmd_hca_cap, hcattr, + relaxed_ordering_read); attr->eth_net_offloads = MLX5_GET(cmd_hca_cap, hcattr, eth_net_offloads); attr->eth_virt = MLX5_GET(cmd_hca_cap, hcattr, eth_virt); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index ac10687..49b174a 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -100,6 +100,8 @@ struct mlx5_hca_attr { uint32_t log_max_hairpin_wq_data_sz:5; uint32_t log_max_hairpin_num_packets:5; uint32_t vhca_id:16; + uint32_t relaxed_ordering_write:1; + uint32_t relaxed_ordering_read:1; struct mlx5_hca_qos_attr qos; struct mlx5_hca_vdpa_attr vdpa; }; diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 4ab1c75..6212085 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -999,7 +999,8 @@ struct mlx5_ifc_cmd_hca_cap_bits { u8 reserved_at_d0[0xb]; u8 log_max_cq[0x5]; u8 log_max_eq_sz[0x8]; - u8 reserved_at_e8[0x2]; + u8 relaxed_ordering_write[0x1]; + u8 relaxed_ordering_read[0x1]; u8 log_max_mkey[0x6]; u8 reserved_at_f0[0x8]; u8 dump_fill_mkey[0x1]; diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 4ebb7ce..c7702c5 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -4100,8 +4100,8 @@ struct field_modify_info modify_tcp[] = { static struct mlx5_counter_stats_mem_mng * flow_dv_create_counter_stat_mem_mng(struct rte_eth_dev *dev, int raws_n) { - struct mlx5_ibv_shared *sh = ((struct mlx5_priv *) - (dev->data->dev_private))->sh; + struct mlx5_priv *priv = dev->data->dev_private; + struct mlx5_ibv_shared *sh = priv->sh; struct mlx5_devx_mkey_attr mkey_attr; struct mlx5_counter_stats_mem_mng *mem_mng; volatile struct flow_counter_stats *raw_data; @@ -4133,7 +4133,9 @@ struct field_modify_info modify_tcp[] = { mkey_attr.pg_access = 0; mkey_attr.klm_array = NULL; mkey_attr.klm_num = 0; - mkey_attr.relaxed_ordering = 1; + if (priv->config.hca_attr.relaxed_ordering_write && + priv->config.hca_attr.relaxed_ordering_read) + mkey_attr.relaxed_ordering = 1; mem_mng->dm = mlx5_devx_cmd_mkey_create(sh->ctx, &mkey_attr); if (!mem_mng->dm) { mlx5_glue->devx_umem_dereg(mem_mng->umem); -- 1.8.3.1