From patchwork Mon Feb 14 08:56:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 107414 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DB8CCA00C4; Mon, 14 Feb 2022 09:57:27 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A68A7410F7; Mon, 14 Feb 2022 09:57:27 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2044.outbound.protection.outlook.com [40.107.220.44]) by mails.dpdk.org (Postfix) with ESMTP id C55DD40C35 for ; Mon, 14 Feb 2022 09:57:25 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XIxFb3PqgB73CWJOuLcY3jQped1ChhtCVZ3OceRxlG+xqS98qum0YpfLEXgu9MzQ5MoE1Mh+9KZSsHzIsHwq6+CqsZ2GJ7+cDvPmFGPyHEdaykDjB/gfmoIaKbkbbGXVSBSZ8S9lV3mMqwz+VKhw1ZbxZs+15kPWyvnShSRhdHEeM7vlUDA9JrYaXdYxzhHONKwnkgArHhtYgSUp6+TvSoSTxLz4rhLghOiJxQaG2a4iwGmAJ+0xfjXNlcKbgjkpzhLjvqgdoR5eu25ku0NqVls5hQqeEzeFM+rnmMo6Q+7z2v1wNZUKsdlm8dEs8Qj7Ndp2OV+0+yklYMSSJviwJw== 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=/3jTdSuaju3bX78OmgBlzePJl+Xy8zj4FvOO70xhx4U=; b=F4jkNp9EH1tCQBAEhUlyd3njcIFDHdgFN49Dfkz+/NPKgowDAdFKU0UzQw2p//jmhJVBuzZ+Zi3cFyE1VHwAKdr4dwpiO9fq3ZiaNfY5r8Fj2g5sWHy/ASnVFohpG31NtBRvbQZMZ1NNtPzqVyhhPdDHaWE9blZzdtyu4idG2tKgRJd8UVIZ3aBiX7WK+tFPinO9AENp8/3kctHdBL4mfsCjFCgomh0LDCttVwDlRVEqdvJZSoqSNOUinHkL+Vl+cZAqICnYEWVRivM0g+9/EwC7SCPaHzsB6RF9LbHHYgq1bsWzLGnLt2pOrhlAMtN2tG6wtnZDcneSrhvCi6F6UQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.238) 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 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=/3jTdSuaju3bX78OmgBlzePJl+Xy8zj4FvOO70xhx4U=; b=dAZT/B5q2FFwa/eChcUlviX0lo/BVFfS3jOZViivygY5dVWmZJ8hfUXxAUp1tUrBfQkgoBhfWF7kmY98N2huGY/u3dA5giyXcvNE5DW5YQRxPIqrvGJ3Q0gctlnjTn5LTkseesuJPPWl9VtqxJNwRpp8WHqW0mSAMg+OF2TofJngiG6+F8bppgf5UiBT6lSvsUknIaGS+2A+nBRJQEGDtIJ+r/kmeabzJUx2hBrtLsg4doiYpFkHnlXF5zv5CVXgR+MLakg9rOaIH9If9k3R5nQMGIuB997Vbal+wwjFPuxIrWahYLXAUbQGb0nfXqW4UcopxpO7VYSprbsFCl21wA== Received: from MWHPR1401CA0022.namprd14.prod.outlook.com (2603:10b6:301:4b::32) by CH2PR12MB3784.namprd12.prod.outlook.com (2603:10b6:610:21::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.15; Mon, 14 Feb 2022 08:57:22 +0000 Received: from CO1NAM11FT035.eop-nam11.prod.protection.outlook.com (2603:10b6:301:4b:cafe::66) by MWHPR1401CA0022.outlook.office365.com (2603:10b6:301:4b::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11 via Frontend Transport; Mon, 14 Feb 2022 08:57:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.238) 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 12.22.5.238 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.238; helo=mail.nvidia.com; Received: from mail.nvidia.com (12.22.5.238) by CO1NAM11FT035.mail.protection.outlook.com (10.13.175.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4975.11 via Frontend Transport; Mon, 14 Feb 2022 08:57:21 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL105.nvidia.com (10.27.9.14) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Mon, 14 Feb 2022 08:57:21 +0000 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.986.9; Mon, 14 Feb 2022 00:57:19 -0800 From: Viacheslav Ovsiienko To: CC: , Subject: [PATCH 1/4] common/mlx5: add send on time capability check Date: Mon, 14 Feb 2022 10:56:52 +0200 Message-ID: <20220214085655.22648-2-viacheslavo@nvidia.com> X-Mailer: git-send-email 2.18.1 In-Reply-To: <20220214085655.22648-1-viacheslavo@nvidia.com> References: <20220214085655.22648-1-viacheslavo@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 887268a9-57f4-40b9-5c0e-08d9ef98032e X-MS-TrafficTypeDiagnostic: CH2PR12MB3784:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2657; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8MXC1sXxGf3tRgcGxjnqi3PPvWXnf96k65Xck0Y/dqYqGhI38arKuJVUw3GDT76VBh9iJgkS5AHDV5kyd2Cmw1s1N8RYSym17Tehi3uMLFtj4rfWjhjXv2WoTZjvFgVGC1gwGY+ekIbZuhTIGG3erUaKVnxYH/jy/2X+2UaKOTiold1d+974E/gw59nwUDFoXjn66X1db31uoa3DaFEAo79n2xPgempTwnL8oUFFLzgsOqiv8YUpHZEBKLtX1nDDkcuudUaznNKwT3tNOwSm64M+1Ddrb+i09k3OUHPMYh7o1cqyRSPWlEkgLuhS9iZ8xYFMhycMjNcHBzj8eHoPpCRZ/2Bwk8UNdXHXXS+hYaPNxvt0IDv83s+4xtKQJRpdU/WRzx6dynrT3/nl1dxK0zySqNc6EgTJ9o8BI8M2Bj9zCiH4DVrjHBDP3SbPtjFZuKGCwaN/PzSskaDehMf87Y/gvXyrYPcmfjmsy2m7rP2VBc5Gj5jn8tjByWyBxlzT0UHsH7XkbPty2O3o8+bDNLpCHpsKbd7H+bZwMDc842r+LuaOod2rY/p2B4fIQU907Ih2tOCLwUfcqkr278WEluGLTP5Sd/JnFp31cNgCRvUlFCHbnoso1t7Dyztoc24olHsrUWQwPfMCKdH1sS9C2BMHBj+Pd3UxZTYO/yAGhU81MjO4UcaPT55KYjvRntj1yYGlLjldAYoMIX8Anw3/aQ== X-Forefront-Antispam-Report: CIP:12.22.5.238; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(40470700004)(81166007)(36860700001)(55016003)(356005)(47076005)(82310400004)(7696005)(6666004)(8936002)(70206006)(336012)(36756003)(6916009)(5660300002)(8676002)(70586007)(4326008)(508600001)(426003)(186003)(16526019)(6286002)(54906003)(107886003)(2616005)(26005)(1076003)(40460700003)(86362001)(83380400001)(316002)(2906002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2022 08:57:21.5823 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 887268a9-57f4-40b9-5c0e-08d9ef98032e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.238]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT035.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB3784 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 The patch provides check for send scheduling on time hardware capability. With this capability enabled hardware is able to handle Wait WQEs with directly specified timestamp values. No Clock Queue is needed anymore to handle send scheduling. Signed-off-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_devx_cmds.c | 1 + drivers/common/mlx5/mlx5_devx_cmds.h | 1 + drivers/common/mlx5/mlx5_prm.h | 27 ++++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 2e807a0829..fb55ef96ea 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -962,6 +962,7 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, MLX5_GET(cmd_hca_cap, hcattr, umr_indirect_mkey_disabled); attr->umr_modify_entity_size_disabled = MLX5_GET(cmd_hca_cap, hcattr, umr_modify_entity_size_disabled); + attr->wait_on_time = MLX5_GET(cmd_hca_cap, hcattr, wait_on_time); attr->crypto = MLX5_GET(cmd_hca_cap, hcattr, crypto); if (attr->crypto) attr->aes_xts = MLX5_GET(cmd_hca_cap, hcattr, aes_xts); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index 37821b493e..909d91adae 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -201,6 +201,7 @@ struct mlx5_hca_attr { uint32_t scatter_fcs_w_decap_disable:1; uint32_t flow_hit_aso:1; /* General obj type FLOW_HIT_ASO supported. */ uint32_t roce:1; + uint32_t wait_on_time:1; uint32_t rq_ts_format:2; uint32_t sq_ts_format:2; uint32_t steering_format_version:4; diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 495b63191a..4ce302b478 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -133,6 +133,19 @@ #define MLX5_OPCODE_WAIT 0x0fu #endif +#define MLX5_OPC_MOD_WAIT_CQ_PI 0u +#define MLX5_OPC_MOD_WAIT_DATA 1u +#define MLX5_OPC_MOD_WAIT_TIME 2u + + +#define MLX5_WAIT_COND_INVERT 0x10u +#define MLX5_WAIT_COND_ALWAYS_TRUE 0u +#define MLX5_WAIT_COND_EQUAL 1u +#define MLX5_WAIT_COND_BIGGER 2u +#define MLX5_WAIT_COND_SMALLER 3u +#define MLX5_WAIT_COND_CYCLIC_BIGGER 4u +#define MLX5_WAIT_COND_CYCLIC_SMALLER 5u + #ifndef HAVE_MLX5_OPCODE_ACCESS_ASO #define MLX5_OPCODE_ACCESS_ASO 0x2du #endif @@ -348,6 +361,15 @@ struct mlx5_wqe_qseg { uint32_t qpn_cqn; } __rte_packed; +struct mlx5_wqe_wseg { + uint32_t operation; + uint32_t lkey; + uint32_t va_high; + uint32_t va_low; + uint64_t value; + uint64_t mask; +} __rte_packed; + /* The title WQEBB, header of WQE. */ struct mlx5_wqe { union { @@ -1659,7 +1681,10 @@ struct mlx5_ifc_cmd_hca_cap_bits { u8 num_vhca_ports[0x8]; u8 reserved_at_618[0x6]; u8 sw_owner_id[0x1]; - u8 reserved_at_61f[0x129]; + u8 reserved_at_61f[0x6C]; + u8 wait_on_data[0x1]; + u8 wait_on_time[0x1]; + u8 reserved_at_68d[0xBB]; u8 dma_mmo_qp[0x1]; u8 regexp_mmo_qp[0x1]; u8 compress_mmo_qp[0x1];