From patchwork Mon Jan 9 07:58:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121714 X-Patchwork-Delegate: thomas@monjalon.net 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 EDE874237B; Mon, 9 Jan 2023 08:59:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9D0D40F16; Mon, 9 Jan 2023 08:59:06 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2085.outbound.protection.outlook.com [40.107.244.85]) by mails.dpdk.org (Postfix) with ESMTP id EA92040E50; Mon, 9 Jan 2023 08:59:04 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bqEuVrJYnLcdSob1Kvw6LjJBkCH9GotYJikVvB84sdLQZ6GzH/ewUUAmdFL0SntMhOepL2XlGsugKS7q7cIHwLKctGXhzpuFyNs5lnzce4XS55k7e9zD2IUgBhr3UQWUu1aodyGMN6H7/f5s0y5zrQkuBFJUvcbl9hU6zD0YBLB3eW0Zj+Fz440KydLVAK5PNqHG1nsfxE1qjuj/R3F2o5N/cO8255FWNZBI6YzVZMDMkCt+ekOtF+iy70iWeUWL7IgIumT8xUNONi3yp/Rj/qKl2wv9m1v8//Uacnbp9w8WrWzJrEtOG1vhV6ZlmGeU+ufpcusbleBC0S3NuxdpCw== 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=dWYXFnPIalCZsb7EXcay2MmOApU01Q5YpnITKBLOyVU=; b=ga/fcQUymj7HyPED2OwszMkbHtefg78sVbG1DeHjbRNgH6XGacSk68DUsbmfNj5RaGEc65K+B4XcE412T1qVlCtxEn2VrNIjdJQvirLNwVRSRd8xqEFgRoYdtQ0J8ml0EmrXrZXzaJAj0clY9S97kAz5TJXdWdMSiLBYjD+f47SwUEZgjlZ2Sb8KH/WmmowVP64IuVRQpk5ZaDiE8yJrC8s0npqo13X4k47rcLP6gaEEYi8Da+rzKxydJezLSD0TzUwcYhUT8IqIdOH9+FXYl8+fuJUrbzijV/uptJ7lRuqTqvWl4gb1lNPhhQKEWu0Y5ONekRoMZHJpOIhvc+U33Q== 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 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=dWYXFnPIalCZsb7EXcay2MmOApU01Q5YpnITKBLOyVU=; b=YS5Z5ZrEJ1XZImMY99iZCknV9hrdA0/jIAu3WNNbi5IF+YRlyqzpcILtCs/Zy5RAWss9xY9tBLbcIe8pNn5zm61ULI1t9E0yyxJogjJZqYBj0mQ1R1yPTg8odiujnBoN6fI9otqx4ZOkal4HzFQSoNBB4mmvtvPAyIGRn4l3/qP31OMVgw9f/kkEMqzBMnb4eifCBAuYpLFTczlufHiiskg3JpEK8lelntph/FiikrRGrdfJxPfZzQmuvuB3HD40LdIPTHGznZR57gj6+nHbx3YlN4+CDIIhnYen7EkMgkLBLRxMfjI0SjEXEjjXJyB8W4h+F34tx/RZtsCJzs3AGw== Received: from MW4PR04CA0067.namprd04.prod.outlook.com (2603:10b6:303:6b::12) by BY5PR12MB4212.namprd12.prod.outlook.com (2603:10b6:a03:202::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 07:59:00 +0000 Received: from CO1NAM11FT056.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::3f) by MW4PR04CA0067.outlook.office365.com (2603:10b6:303:6b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:00 +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 CO1NAM11FT056.mail.protection.outlook.com (10.13.175.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:00 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.36; Sun, 8 Jan 2023 23:58:49 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:58:49 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:47 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" , Subject: [PATCH 1/7] compress/mlx5: fix wrong output Adler-32 checksum offset Date: Mon, 9 Jan 2023 09:58:32 +0200 Message-ID: <20230109075838.2508039-2-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT056:EE_|BY5PR12MB4212:EE_ X-MS-Office365-Filtering-Correlation-Id: ccecf1c8-45a6-4c75-9fd9-08daf2175e26 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: baFUZVWj3+5fl7EtAWuPji0wfGNc/Z3LgrYv/DXceFZKosObq5wSZbMOGUL9VajPfAfHbG1bmV74bHyjFrgpvDleMYLQ4Y6Dd9bn7kYk0CkjqYsx1kV470zCP/6FsXSEOEtGnReRZMJdIg+Ypvd2WFmHlObCq8WRdlaOKsx/NoyIKzkf58WKtJxJ+DMKPOgNebbSHM6ntDa5uHzSpuIaY9kbMGCGpMs+g3AhdNq2Yfvv8K2ieoUUNr6xWOJsilaBKxqa5HtYo1NjKEK5REa54+ux5erQWzLHiwefB7tMV1t8olayS1DbiQlTPyZeDp/HtpnA2MMvTOZ82/OIpm9ntMrHzm4vyVzyV8uWqHlbqBhE2UXS5gDH8ZO0IO4U9dCH0xcB4kh4nmhSAniuCgyZ6srOz6/Olm+Y5Wj8iwFpmIDuBEjZsxi9w39LEPJO6d7bN8n9V7mmI4wTKSijwm/F0Uo44ch4uX63Af3or0t2t6V7DfMommtwFrChVVrhvu5Nh9qnpXrfY9Z239UYisXo4GX1lWfKAISgPWXaEbchRS0ZZA7wZlkecsE9pZfnGLZ6/Ry82ly+/a6pZOCv90/vVxQ8tZozDFJdjNdHnETidx0SFWYZlyHWk82kXHFp057YDbYsIGlH+Pl4S00i5/NWntnVzyV6lOdDJ8LZRTCPTWw= 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:(13230022)(4636009)(396003)(136003)(39850400004)(376002)(346002)(451199015)(36840700001)(46966006)(36756003)(186003)(8936002)(6666004)(26005)(2616005)(1076003)(54906003)(5660300002)(55016003)(40480700001)(7696005)(6286002)(6916009)(4326008)(316002)(356005)(86362001)(82740400003)(70586007)(478600001)(7636003)(41300700001)(70206006)(8676002)(82310400005)(47076005)(2906002)(83380400001)(426003)(336012)(36860700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:00.2543 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ccecf1c8-45a6-4c75-9fd9-08daf2175e26 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: CO1NAM11FT056.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4212 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 After de/compress dequeue, the output checksum is copied into the op structure. The "output_checksum" field in op structure is "uint64_t" type, and the 32-bit checksums (CRC32, Adler-32) are copied into the lower 32 bits. When both CRC32 and Adler-32 are configured, CRC32 is copied into the lower 32 bits and Adler-32 into the upper 32 bits. However, in mlx5 PMD Adler-32 without CRC, is mistakenly copied into the upper 32 bits. This patch updates Adler-32 output checksun to be copied into the lower 32 bits. Fixes: f8c97babc9f4 ("compress/mlx5: add data-path functions") Cc: matan@nvidia.com Cc: stable@dpdk.org Signed-off-by: Michael Baum --- drivers/compress/mlx5/mlx5_compress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index 459e4b5e8a..c0a861e5e4 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -633,7 +633,7 @@ mlx5_compress_dequeue_burst(void *queue_pair, struct rte_comp_op **ops, break; case RTE_COMP_CHECKSUM_ADLER32: op->output_chksum = (uint64_t)rte_be_to_cpu_32 - (opaq[idx].adler32) << 32; + (opaq[idx].adler32); break; case RTE_COMP_CHECKSUM_CRC32_ADLER32: op->output_chksum = (uint64_t)rte_be_to_cpu_32 From patchwork Mon Jan 9 07:58:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121715 X-Patchwork-Delegate: thomas@monjalon.net 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 CD2A34237B; Mon, 9 Jan 2023 08:59:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BB51642D21; Mon, 9 Jan 2023 08:59:07 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2074.outbound.protection.outlook.com [40.107.243.74]) by mails.dpdk.org (Postfix) with ESMTP id 71B3340E50; Mon, 9 Jan 2023 08:59:05 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P6H2oj0+mJGTeH/bMgM8R2r/twJHgaW3so9kw2FxqihFhhUZlbzMbUil14lnIDERKHDoWEf1Fd6BNavztaB+A1vb0ZpzQLTl5ymC7Skf8kK7+Kq+eWzw2vxNFHsU7p4ZrEUA89k9ZINSDKvicTqMVkWHMhpHW6q6gGVivTU52gohGauouklh+IwyujSSE8cwOKUJtv8jmIPJyUH33VScbQb8Ah+5KUV7+wajjlHFPOi6rU3oOc41+hNfrtKAWoMWjm8s2E/aCg2F4s766TU6kogn5t/7sZeKbSqVSx653SIdNL9/ANvt4+j39mNDd6DDQ7XWPTgF8M5k0fMttym93Q== 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=afEcme/wKX1NGAveqzzIzLA1ahv7AsU6UNdyX1wgzV0=; b=kTb0g59TbSQ9PLI+w/y6cDW7MJwHtfh1XDb9Db2a+RcXtsZxyBO4jOGq6ZUzk+2WdCZvf2TNa/w9jaCltk+FbEl3cr7d6VoK3XfdcB+vj32ypc1rzwFwvVte7X3p8HG/6tkfs+lVkjbxE0Dl03NJR1NezLpJeV82aMnNjWTeDM+A7xhxTlRw+GhFujUFhCYoRE0gLVueCyN8QMXMhDQwdMrIqB82AZPxsMTASa3js3k/sM2ozJQFrw13DtM1YErPHdAW293ttIGo/aQepp2RI/mUBjMCZs7stGLHS2sd6A57uwynaohke7eT/qbkvfn0BxgMlAwzpRig9NbwepCYBA== 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 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=afEcme/wKX1NGAveqzzIzLA1ahv7AsU6UNdyX1wgzV0=; b=l25hkGg/rK9qeatgXK0wSYiveCnS8eJWjlTybhtRo/dwBL6i5lziUTPrWAJKZdNWDrmT0wMNJ83QWOoHgeaLIsngB0RusAAxloP3rO+SYnsbGWXOr5d0mCgoJE3t8pRDNED2J+IUJL9ML1jr0hMz6Tb3yvp4V2cs8fJmrStwMPzRGyVPQz5gPX4naSazpMhZFB3L7H9+5QJSwXraqgDBWvSGSFhSR0B3YoJD8j1oZUEeGm8+LoBH386o5v6AygE0WR3m6oOJohgyNUVeIpFQIolSh5k5zsDftW+R5w7FIW0OIW9DuqhX1ztOk3ySa7oNnMbRcY4s6yNaep15Heam/A== Received: from BN8PR07CA0005.namprd07.prod.outlook.com (2603:10b6:408:ac::18) by PH7PR12MB6883.namprd12.prod.outlook.com (2603:10b6:510:1b9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 07:59:03 +0000 Received: from BN8NAM11FT073.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ac:cafe::1d) by BN8PR07CA0005.outlook.office365.com (2603:10b6:408:ac::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:03 +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 BN8NAM11FT073.mail.protection.outlook.com (10.13.177.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:02 +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.986.36; Sun, 8 Jan 2023 23:58:52 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:58:51 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:49 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" , , Subject: [PATCH 2/7] compress/mlx5: fix QP setup for partial transformations Date: Mon, 9 Jan 2023 09:58:33 +0200 Message-ID: <20230109075838.2508039-3-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT073:EE_|PH7PR12MB6883:EE_ X-MS-Office365-Filtering-Correlation-Id: c414ec78-7fb2-4615-12b9-08daf2175fc3 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0dsHktHeFFx+Avxk5eb8vA9yD1hl2F5VXNMY7ZTBshQEpRf77NbMwpdsc/AG3zHbGX7tmNsQDxBneTTR4CDgTbxltdpMDfF2x6ONg9FSzqV80/gEvzRfqOHvDcpNDjQr+qIYAm6LrhzUj7dfIzAitE2tMKTfYvXW5Ptw8zaBjV7eUR12g3cE0P5dZVj0QR+HEZwqQuoERZg5WSchtrg3fA4nOs6qIc/z4m6JCF+9s24FtpXZ6VdaC+vJcDMdOwn2AeFgbuybtEBL6HIFW9TdkRha5JiQIyk6Ind8F9IkLchLQhDCGDm5jLgH8ClXr84YGJNrPfFAlYmNJHRfE+6xLFxJTvJhsBWGf41rxyIDQS2UYYKmWBxiQi5u8Kb243A6/by9V4mdWfx1W/kT5eIf2Qujy5IO/2LGBG/DmMM/n0drtQ91XoNqtTJFHFOvuFirQw6QAJLVSTu0Tva3CeQW/8RV6FET8AhrSaukj5i/wEYkzXOzw6ITXK/BZqQm2Oen3gplGX1xZKCV2TvJ8mUhlFm3roQnJg9NSrqkOhA+OOQsiC5qrVI3BmM8l5HJrRtkP4qDJWXGED1D9wdIduKpWPGlKrAG0BypTHUbJd314zN3ujqcnVxZxHZDEIUYBevfj7FE8h92ilSY4B2Q6Dch6rVhYUPV2eMwhha/E4Su8yA+g4GwsmY+TU22GW4byKGj8B+jQvqlARaVG/F2t1IAeA== 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:(13230022)(4636009)(376002)(346002)(39860400002)(396003)(136003)(451199015)(36840700001)(40470700004)(46966006)(36756003)(86362001)(41300700001)(54906003)(40460700003)(70586007)(70206006)(8676002)(6916009)(4326008)(82740400003)(356005)(7636003)(36860700001)(83380400001)(7696005)(6666004)(478600001)(26005)(186003)(5660300002)(2906002)(8936002)(426003)(316002)(40480700001)(55016003)(6286002)(2616005)(82310400005)(1076003)(47076005)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:02.9104 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c414ec78-7fb2-4615-12b9-08daf2175fc3 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: BN8NAM11FT073.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6883 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 mlx5_compress_qp_setup() function creates QP for compress, decompress and DMA. Thus, the MMO flag is turned on only when all operations are supported. However, since partial transformations have been allowed, it should be turn on for part of them. This patch removes the compress MMO support requirement. Fixes: 2efd26544554 ("compress/mlx5: support partial transformation") Cc: rzidane@nvidia.com Cc: stable@dpdk.org Signed-off-by: Michael Baum --- drivers/compress/mlx5/mlx5_compress.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index c0a861e5e4..d38f247216 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -243,8 +243,8 @@ mlx5_compress_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, mlx5_ts_format_conv(priv->cdev->config.hca_attr.qp_ts_format); qp_attr.num_of_receive_wqes = 0; qp_attr.num_of_send_wqbbs = RTE_BIT32(log_ops_n); - qp_attr.mmo = priv->mmo_decomp_qp && priv->mmo_comp_qp - && priv->mmo_dma_qp; + qp_attr.mmo = priv->mmo_decomp_qp || priv->mmo_comp_qp || + priv->mmo_dma_qp; ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp->qp, qp_attr.num_of_send_wqbbs * MLX5_WQE_SIZE, &qp_attr, socket_id); From patchwork Mon Jan 9 07:58:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121716 X-Patchwork-Delegate: thomas@monjalon.net 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 344B94237B; Mon, 9 Jan 2023 08:59:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CAC6542D2B; Mon, 9 Jan 2023 08:59:08 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2080.outbound.protection.outlook.com [40.107.102.80]) by mails.dpdk.org (Postfix) with ESMTP id 8BB5642D13 for ; Mon, 9 Jan 2023 08:59:07 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jVa3LLijgXAJXbXzRxB25fVubimbpgLqM3Z1Pz7jUgZjMuREsgt4ingHgZuipY4En985T79hK4HXlzyLDmrVC8zl2bZuDg8Wn0nWmoeiAyFR+Kj3cKMIZnQuYbqoYFf3Blmucw2Eel7ISSo4e3XmArG/cK9EFkWxLPJQLKcljJC8g4CJGs0MwRzwJb9QIK1jfusgyOLC0Xf2e1SOyjtdsazkhHSsfmhKv/b0OR+ZbLxgJraw7hj7cnD5tpfDE1qyENipuyC0ELU7yq5jJGwXCtnDiruQUNDHdtC1IMzNPEe1WBxb+kvbio3eKMkJ7Z1srYJcDNcfxooAe0O/HWtMgg== 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=yUS7DL8b1ygvipA1kxrwnPYZoiyAQFB1k0RDwzzCMbQ=; b=dlsm0qjBCa9qgUUquruzr1Gi+RNFF5LwpPLvwjIsO3ehVSQFiVLs51MCYOIlz9r/8KfpXFfRi4zQzOJl3KlDz/eE+Npp4o6urHEmsdcH17+0mMCHYqgrhGXz4doa5hL9pSC0TNPhR1vLVpbFwUYmVb9W6n9avp92jbyIFJTBRsC4SarXN7Lqy3t44aAiDokm5QOzMOc8MbOY4G3rxxrb0Eo4LLz/cANugp1yjHr1Fz4BA0uAW5JiihBU/N9KO9VV5Bp4M4Yam6Z6UIlTZyx2Zh27/skpDkzLQkuoe1M6gOAEczbffSA/K/GZudS3k7FcNJyPCPjB7HFrAtgzh826Eg== 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 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=yUS7DL8b1ygvipA1kxrwnPYZoiyAQFB1k0RDwzzCMbQ=; b=UgU/cLTUxtLQa2UXFIQCga3QpNmpyKdlj/Pg4qxZX1RrKl0qdowAllOfMtvUpmJSNoAD50TiBPERZmOcDdx0+bvM7PxWA0aq43ZUSzbtKGq0Qfij+gl0UsJOZqmZzolLdywjad69UVuOplpviK+1FURYZmUWf34D+IDTAniUDMk45fe72EFaJwWXlRsOYIfuVKYKS/g4t8AWdAk67nF3GJYG48qIFzvw2whU3lpWXHDxZt1B7nigfM4G28KCkZdIW2/dpyK/dlEqQzjMhwYyb4vDquNN5OuVP/EZDi1qcLo89nsoD87+atKZe0O26rO4IDKURPujgc/NRZOOV7cFdA== Received: from MW2PR16CA0047.namprd16.prod.outlook.com (2603:10b6:907:1::24) by MW4PR12MB7013.namprd12.prod.outlook.com (2603:10b6:303:218::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Mon, 9 Jan 2023 07:59:05 +0000 Received: from CO1NAM11FT035.eop-nam11.prod.protection.outlook.com (2603:10b6:907:1:cafe::a0) by MW2PR16CA0047.outlook.office365.com (2603:10b6:907:1::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:05 +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 CO1NAM11FT035.mail.protection.outlook.com (10.13.175.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:05 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.36; Sun, 8 Jan 2023 23:58:54 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:58:53 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:52 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" Subject: [PATCH 3/7] compress/mlx5: support new metadata layout added in BF3 Date: Mon, 9 Jan 2023 09:58:34 +0200 Message-ID: <20230109075838.2508039-4-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT035:EE_|MW4PR12MB7013:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ebb7cb8-0bdb-4369-5a0a-08daf217614b X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SsA3/uOYLYcZaCPKqzFMjHk7FAGojIIaboYwztrXDdo5iCg0WCi5RnaZHC3OrBdo/NjNO5FIdvOPZ5fQzmSTbLj2A8zKcTFReUSP8Qzk/iqtJiLhQxIoZ2YY9QT/dthjcHtWWokCBBplNSfeJ7xQQZRxIoBbcAQEoQ9Qh5OAwrMfQFa58KQqRIKPyspVYEoFiGGfi+GH0DVXSLX9MIK+lCuZGuqCcs5VhpXUoFq6FPLyZkdMWJEm9rtkQmbMHZZQTXNALBhi6tcoCRm5UgmmXd1XEfwm4kc3L1r2qv0YcQJtuOQYLnVbZFozPC5opVB9vIXD+1oWVQ+rE7axqDwk0bP2HWsxL2QKpXTVRp+v/gnuDApL6pdDFk5XaXHhPepPOGZi/iXCXUko6Bz7NtUpAKnyIQOAlQbwLmjijhisoyYYAfVJwIOOxI0CFcwxhbtTCupEsuGtdahjuPULcBV3kX2ftNzfUMU+wM1Ghm9BPGjajZVK4v/DseuVdillMO0rm+94fXo60Ubpw0TNvL7gCfsBFgB4uZ9KgZlNbvR6S1k5qqyL/9niNWja7kWq0tS3mRv3JrZ5PAQElQ+ZPTUeimCoKAtxZRtXBHvGxjWjOY4+YagwTXH/AUdjPsbSGh6W+UCjkOl6FUljn8S6HmiKYR943CroYoZK2YWi39lyU6WxZwMJ4PPwmYKaxd6HxHsVJzc34Uflpb6s3EiBzzkjOA== 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:(13230022)(4636009)(376002)(396003)(136003)(39860400002)(346002)(451199015)(40470700004)(36840700001)(46966006)(316002)(54906003)(6916009)(36756003)(82740400003)(356005)(8936002)(8676002)(70206006)(41300700001)(40480700001)(4326008)(70586007)(6286002)(86362001)(426003)(26005)(186003)(40460700003)(83380400001)(47076005)(2616005)(336012)(55016003)(7696005)(1076003)(82310400005)(6666004)(478600001)(36860700001)(2906002)(5660300002)(7636003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:05.5281 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ebb7cb8-0bdb-4369-5a0a-08daf217614b 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: CO1NAM11FT035.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7013 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 Commit [1] add support in Bluefield-3, but Bluefield-3 has different GGA opaque structure than Bluefield-2. This patch updates the PRM structure to include both versions, and culculate the relevant offset for each version in control path. Commit [1] 559014f232b4 ("compress/mlx5: add Bluefield-3 device ID") Signed-off-by: Michael Baum --- drivers/common/mlx5/mlx5_devx_cmds.c | 11 +++++++++ drivers/common/mlx5/mlx5_devx_cmds.h | 1 + drivers/common/mlx5/mlx5_prm.h | 32 +++++++++++++++--------- drivers/compress/mlx5/mlx5_compress.c | 35 ++++++++++++++++++--------- 4 files changed, 56 insertions(+), 23 deletions(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 59cebb530f..8280785e2f 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -980,6 +980,17 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, compress_mmo_qp); attr->mmo_decompress_qp_en = MLX5_GET(cmd_hca_cap, hcattr, decompress_mmo_qp); + /* + * Due to HW bug, we have 2 different 'gga_compress_opaque' versions. + * At this moment, Bluefield-2 uses old version and Bluefield-3 uses the + * new one. The following condition is equivalent to ask whether the + * device is Bluefield-3. + * Later, when FW exposes specific flag for it, this condition should be + * removed and 'gga_comp_opaq_new_version' field will read the PRM flag + * directly. + */ + if (attr->mmo_decompress_qp_en && !attr->mmo_compress_qp_en) + attr->gga_comp_opaq_new_version = 1; attr->compress_min_block_size = MLX5_GET(cmd_hca_cap, hcattr, compress_min_block_size); attr->log_max_mmo_dma = MLX5_GET(cmd_hca_cap, hcattr, log_dma_mmo_size); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index c94b9eac06..dac86e8a5b 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -260,6 +260,7 @@ struct mlx5_hca_attr { uint32_t mmo_dma_qp_en:1; uint32_t mmo_compress_qp_en:1; uint32_t mmo_decompress_qp_en:1; + uint32_t gga_comp_opaq_new_version:1; uint32_t mmo_regex_qp_en:1; uint32_t mmo_regex_sq_en:1; uint32_t compress_min_block_size:4; diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 2b5c43ee6e..c3a1ce11a4 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -607,17 +607,27 @@ struct mlx5_gga_wqe { struct mlx5_wqe_dseg scatter; } __rte_packed; -struct mlx5_gga_compress_opaque { - uint32_t syndrom; - uint32_t reserved0; - uint32_t scattered_length; - uint32_t gathered_length; - uint64_t scatter_crc; - uint64_t gather_crc; - uint32_t crc32; - uint32_t adler32; - uint8_t reserved1[216]; -} __rte_packed; +union mlx5_gga_compress_opaque { + struct { + uint32_t syndrome; + uint32_t reserved0; + uint32_t scattered_length; + union { + struct { + uint32_t reserved1[5]; + uint32_t crc32; + uint32_t adler32; + } v1 __rte_packed; + struct { + uint32_t crc32; + uint32_t adler32; + uint32_t crc32c; + uint32_t xxh32; + } v2 __rte_packed; + }; + } __rte_packed; + uint32_t data[64]; +}; struct mlx5_ifc_regexp_mmo_control_bits { uint8_t reserved_at_31[0x2]; diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index d38f247216..10a609e3ec 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -55,6 +55,7 @@ struct mlx5_compress_priv { uint32_t mmo_dma_sq:1; uint32_t mmo_dma_qp:1; uint32_t log_block_sz; + uint32_t crc32_opaq_offs; }; struct mlx5_compress_qp { @@ -157,7 +158,7 @@ mlx5_compress_init_qp(struct mlx5_compress_qp *qp) { volatile struct mlx5_gga_wqe *restrict wqe = (volatile struct mlx5_gga_wqe *)qp->qp.wqes; - volatile struct mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr; + volatile union mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr; const uint32_t sq_ds = rte_cpu_to_be_32((qp->qp.qp->id << 8) | 4u); const uint32_t flags = RTE_BE32(MLX5_COMP_ALWAYS << MLX5_COMP_MODE_OFFSET); @@ -211,8 +212,8 @@ mlx5_compress_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, goto err; } opaq_buf = rte_calloc(__func__, (size_t)1 << log_ops_n, - sizeof(struct mlx5_gga_compress_opaque), - sizeof(struct mlx5_gga_compress_opaque)); + sizeof(union mlx5_gga_compress_opaque), + sizeof(union mlx5_gga_compress_opaque)); if (opaq_buf == NULL) { DRV_LOG(ERR, "Failed to allocate opaque memory."); rte_errno = ENOMEM; @@ -225,7 +226,7 @@ mlx5_compress_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, qp->ops = (struct rte_comp_op **)RTE_ALIGN((uintptr_t)(qp + 1), RTE_CACHE_LINE_SIZE); if (mlx5_common_verbs_reg_mr(priv->cdev->pd, opaq_buf, qp->entries_n * - sizeof(struct mlx5_gga_compress_opaque), + sizeof(union mlx5_gga_compress_opaque), &qp->opaque_mr) != 0) { rte_free(opaq_buf); DRV_LOG(ERR, "Failed to register opaque MR."); @@ -544,7 +545,7 @@ mlx5_compress_dump_err_objs(volatile uint32_t *cqe, volatile uint32_t *wqe, DRV_LOG(ERR, "%08X %08X %08X %08X", wqe[i], wqe[i + 1], wqe[i + 2], wqe[i + 3]); DRV_LOG(ERR, "\nError opaq:"); - for (i = 0; i < sizeof(struct mlx5_gga_compress_opaque) >> 2; i += 4) + for (i = 0; i < sizeof(union mlx5_gga_compress_opaque) >> 2; i += 4) DRV_LOG(ERR, "%08X %08X %08X %08X", opaq[i], opaq[i + 1], opaq[i + 2], opaq[i + 3]); } @@ -558,7 +559,7 @@ mlx5_compress_cqe_err_handle(struct mlx5_compress_qp *qp, &qp->cq.cqes[idx]; volatile struct mlx5_gga_wqe *wqes = (volatile struct mlx5_gga_wqe *) qp->qp.wqes; - volatile struct mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr; + volatile union mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr; volatile uint32_t *synd_word = RTE_PTR_ADD(cqe, MLX5_ERROR_CQE_SYNDROME_OFFSET); switch (*synd_word) { @@ -575,7 +576,7 @@ mlx5_compress_cqe_err_handle(struct mlx5_compress_qp *qp, op->consumed = 0; op->produced = 0; op->output_chksum = 0; - op->debug_status = rte_be_to_cpu_32(opaq[idx].syndrom) | + op->debug_status = rte_be_to_cpu_32(opaq[idx].syndrome) | ((uint64_t)rte_be_to_cpu_32(cqe->syndrome) << 32); mlx5_compress_dump_err_objs((volatile uint32_t *)cqe, (volatile uint32_t *)&wqes[idx], @@ -590,13 +591,14 @@ mlx5_compress_dequeue_burst(void *queue_pair, struct rte_comp_op **ops, struct mlx5_compress_qp *qp = queue_pair; volatile struct mlx5_compress_xform *restrict xform; volatile struct mlx5_cqe *restrict cqe; - volatile struct mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr; + volatile union mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr; struct rte_comp_op *restrict op; const unsigned int cq_size = qp->entries_n; const unsigned int mask = cq_size - 1; uint32_t idx; uint32_t next_idx = qp->ci & mask; const uint16_t max = RTE_MIN((uint16_t)(qp->pi - qp->ci), nb_ops); + uint32_t crc32_idx = qp->priv->crc32_opaq_offs; uint16_t i = 0; int ret; @@ -629,17 +631,17 @@ mlx5_compress_dequeue_burst(void *queue_pair, struct rte_comp_op **ops, switch (xform->csum_type) { case RTE_COMP_CHECKSUM_CRC32: op->output_chksum = (uint64_t)rte_be_to_cpu_32 - (opaq[idx].crc32); + (opaq[idx].data[crc32_idx]); break; case RTE_COMP_CHECKSUM_ADLER32: op->output_chksum = (uint64_t)rte_be_to_cpu_32 - (opaq[idx].adler32); + (opaq[idx].data[crc32_idx + 1]); break; case RTE_COMP_CHECKSUM_CRC32_ADLER32: op->output_chksum = (uint64_t)rte_be_to_cpu_32 - (opaq[idx].crc32) | + (opaq[idx].data[crc32_idx]) | ((uint64_t)rte_be_to_cpu_32 - (opaq[idx].adler32) << 32); + (opaq[idx].data[crc32_idx + 1]) << 32); break; default: break; @@ -717,6 +719,7 @@ mlx5_compress_dev_probe(struct mlx5_common_device *cdev, .socket_id = cdev->dev->numa_node, }; const char *ibdev_name = mlx5_os_get_ctx_device_name(cdev->ctx); + uint32_t crc32_opaq_offset; if (rte_eal_process_type() != RTE_PROC_PRIMARY) { DRV_LOG(ERR, "Non-primary process type is not supported."); @@ -751,6 +754,14 @@ mlx5_compress_dev_probe(struct mlx5_common_device *cdev, priv->mmo_comp_qp = attr->mmo_compress_qp_en; priv->mmo_dma_sq = attr->mmo_dma_sq_en; priv->mmo_dma_qp = attr->mmo_dma_qp_en; + if (attr->gga_comp_opaq_new_version) + crc32_opaq_offset = offsetof(union mlx5_gga_compress_opaque, + v2.crc32); + else + crc32_opaq_offset = offsetof(union mlx5_gga_compress_opaque, + v1.crc32); + MLX5_ASSERT((crc32_opaq_offset % 4) == 0); + priv->crc32_opaq_offs = crc32_opaq_offset / 4; priv->cdev = cdev; priv->compressdev = compressdev; priv->min_block_size = attr->compress_min_block_size; From patchwork Mon Jan 9 07:58:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121717 X-Patchwork-Delegate: thomas@monjalon.net 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 786274237B; Mon, 9 Jan 2023 08:59:33 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F18D442D33; Mon, 9 Jan 2023 08:59:09 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by mails.dpdk.org (Postfix) with ESMTP id C999342D2A for ; Mon, 9 Jan 2023 08:59:08 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KVFE4TIXCxG+lTAaFp7PFBvmF5uBDHkw4HqpnKBncGgFPNIwOz31Lhzk+LDgYXeqor1gKF8cPy3/btU/pP5MItKZI4OLe5mSeQ36SNDfvW4zy9dPwgM+0n0T8lJcKBUHFSBGT4FSLVhFBXWY9spMbVOtCxAt/K963BlVXnl7CJTGjDTZXvPWzepWw1ImoFYhGT7WK2utq2C4kZ0euQ2ZW6WqOJMjlAqAqRUodCbUUcur7JJTCU0JvoUHqw/j8+3rd3ZmvNdmzZ0tKTJnObT68Y4IJQFgpsMjn4DRNKSZwzTYhIn4EkJsSkVtRoiKA6PsN6Ir8uKnynu5ToMJovu2YQ== 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=tbxR1hOdJcSzvY9uu3fMT3/tzmmjRPoZRsKQspH8W8s=; b=LfRDKotf6qsEecon7KldmuNrPnLebqeDX+SEDbnNzCVQCgwNkLYLdIkvvf+sbAviEiJkxgbPiNDDGiETojv3u0ceqnNR77Wtmfeuatx8apX40CjtCy0pj7Go3Br3xh9LoILMcHWB6f2lggkqiiojpqdTROg1f8+OViYz3IwmEJ1iP1RrN7sWSJkAFn5EGsZIiBP0vVeTXHbgtlILmj5AFnsAfQfjHyhPlPYlyKLCwubNmCX7kFnu8FjIFefyDOn/qI700Z9fwQ19XaOp3+RcwCvnpjiyavvELSUAgOcrNL4XGRl5KKKlBVKnSSAspXjAxSxe/yQlWTFbQW5o59ZQ+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 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=tbxR1hOdJcSzvY9uu3fMT3/tzmmjRPoZRsKQspH8W8s=; b=AWHd5Ku9AVY0E+TShkStCywu/g1a+/u7icNgJ93ykIqZgYAVR1eEaQC0vRYrl5efREfaWjjhGRQV9A07lf5JgCWWm/mRJeIMKQUSblX9K/WwtfysRBtmwNK4tfEfXV22O0iNIh2uasXN70bvyh/I7eSeAy4T0DPHLOz3GBf2oLMQ+AeAkqYWFO3OAK14NxqJS2/vw65QD84KXQEdCXDa3h+tXm2k3+cHNQ/bbwrS1R0aRj3EoBl/HKByutNpEHDUNbG6DgMg4yAUMgK/W/+k6pnXxK11k5ACZTUcBqdJ4P9yOCVF6WiAvLjGqIbzmkAgmc34fiDor0VA4wQI7vM8+Q== Received: from BN0PR03CA0042.namprd03.prod.outlook.com (2603:10b6:408:e7::17) by CH3PR12MB8582.namprd12.prod.outlook.com (2603:10b6:610:163::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 07:59:07 +0000 Received: from BN8NAM11FT061.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e7:cafe::9b) by BN0PR03CA0042.outlook.office365.com (2603:10b6:408:e7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:07 +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 BN8NAM11FT061.mail.protection.outlook.com (10.13.177.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:06 +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.986.36; Sun, 8 Jan 2023 23:58:55 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:58:55 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:54 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" Subject: [PATCH 4/7] compress/mlx5: remove unused variable from priv structure Date: Mon, 9 Jan 2023 09:58:35 +0200 Message-ID: <20230109075838.2508039-5-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT061:EE_|CH3PR12MB8582:EE_ X-MS-Office365-Filtering-Correlation-Id: 406b8e85-5e56-447b-f06d-08daf2176222 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1w66Zt04tZMuhzPpWRnyQxDO54WP233tBjyDTz0jESitb3so5Z63iHIlZDXfLp5aP4Ky2dBXN5efTz91ziiegYY/4QxCde7aY+v0JaUICIr73Y6NICpBsCIw22wbzHo/hn97Mm9BH/BOlZl/MeX2c9S66REvYcb1LY4jdVfaP7CnLAKBPBgco/y3tiNnzEWO99645lop9CD9EmSlakzZYxQVdrs9OqPrqamHIj9s+eUHg4wpcLD/A+HM/kii7N+u0yIPDmN1o2YUHLsm4qIuGbqM/d7Xq5WbrDBiV9SQxb+3k09ll71pmCrQ9Q4sWTp5JHSPa9aMyZ7aD0yof7rA8LOhspRxnuGKjXDO7/k/G82PUFT7XgCRKvn2MWsZvYKxpxd18fESPHYlJCz9C4349xDFpaihBtXJmLZaIYARk1C8c/ZBbXF97Kw7gepJoUgqtq8TOkK3Imh1IXGz0feydi4fNQYQFTHG4UzcULiIGDhfe6KbYfJYNyH8sa6+O0bYikxoQkiaX5tpxietUUOioxjotFxY2k12VXxyvQ/2Bg2+PTXg5z3he194elIWr+SCgmNJd9vh4vdta2ywhJb3Q61ZGqdUqv2ovurBuy3cU457jD5wGIVVS0RBesbGW6aPzcrxSI7dy1bxsLDy4WUV2qCIEZLTPJYzEN+mg2s+ps5UBsrPu6HX6mIaYe5Y/LD0VstONUp3/mFe1yLC7uy5lw== 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:(13230022)(4636009)(39860400002)(376002)(396003)(136003)(346002)(451199015)(46966006)(40470700004)(36840700001)(478600001)(6666004)(47076005)(40480700001)(1076003)(2616005)(55016003)(336012)(26005)(4326008)(186003)(6286002)(6916009)(70586007)(70206006)(8676002)(54906003)(316002)(7696005)(83380400001)(36860700001)(40460700003)(86362001)(82740400003)(356005)(7636003)(426003)(82310400005)(41300700001)(36756003)(5660300002)(2906002)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:06.8932 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 406b8e85-5e56-447b-f06d-08daf2176222 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: BN8NAM11FT061.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8582 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 priv structure has variable named "min_block_size" coming from HCA capabilities. This field isn't used and copied into the priv structure for free. This patch removes this field. Signed-off-by: Michael Baum --- drivers/compress/mlx5/mlx5_compress.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index 10a609e3ec..f03a50b9ee 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -42,8 +42,6 @@ struct mlx5_compress_priv { struct rte_compressdev *compressdev; struct mlx5_common_device *cdev; /* Backend mlx5 device. */ struct mlx5_uar uar; - uint8_t min_block_size; - /* Minimum huffman block size supported by the device. */ struct rte_compressdev_config dev_config; LIST_HEAD(xform_list, mlx5_compress_xform) xform_list; rte_spinlock_t xform_sl; @@ -764,7 +762,6 @@ mlx5_compress_dev_probe(struct mlx5_common_device *cdev, priv->crc32_opaq_offs = crc32_opaq_offset / 4; priv->cdev = cdev; priv->compressdev = compressdev; - priv->min_block_size = attr->compress_min_block_size; if (mlx5_devx_uar_prepare(cdev, &priv->uar) != 0) { rte_compressdev_pmd_destroy(priv->compressdev); return -1; From patchwork Mon Jan 9 07:58:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121718 X-Patchwork-Delegate: thomas@monjalon.net 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 5D5514237B; Mon, 9 Jan 2023 08:59:39 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D699342D2D; Mon, 9 Jan 2023 08:59:13 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2050.outbound.protection.outlook.com [40.107.243.50]) by mails.dpdk.org (Postfix) with ESMTP id 3134B42D26 for ; Mon, 9 Jan 2023 08:59:12 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XUwFKRhFR6gedqlnb2OsWW3VH7Z0RWPN5m4qRizn/nZqsonZ2ctoxWwXkphUxzspbHdosx+Iy/6xVrEue2uBedJfKp3cm11AuNJg4IDv2ri2P1s+WYX8J6rAsv7KJPkMdRgP7/BUsvk7NjdTCkRHyGn+etyPrI6yxBthCd1dAbiq8dsPfWKSO61Z7+tpfyK/6DxuP3kkO2yggSTQg2C2ZxACoXlS+3IOy4DFVkMee6btO99ZDPypxRO6tcM2GHeVai4wizVqFmThrSC5jOjIAE/4wTrPalUc2zBscDnAofJZL0m9Kg6anEJJfddY7J3uEXj6wnq6NdetsM0Cdq+v3A== 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=fYpi6BWLrFsDgWkY6lKaLDv7fGKnVaMTwGHIzv+uXvY=; b=Hi+9bSYxi2a9GHknzratEAR8SHCQXyE5qCoCtEND386gdX0a+Me8TcHMKUh8Q5PROsDDHhARFca8eiUs0HczJKT3odOYgwmcFxZqjK1qfJHq9Zh2mOS2BHeazSVUbih3YHzXeDzz4D+/CwK11pi9ddQEDx9XUkNJbIVf2qAsg5KG+Y7EDFDlVZsYjUnyMnQEx26LSBA12hnSW9ixdB7SwOyt1d7jnJqnLfjpWL9rzj1EnsST/8hOVpALsraKu01vAer1jhZSIWZgbJKONCRacSQ/4Y1Sm7gkjFXZlE8q2oZVUkqsonxdKX2OXK/u7UXmjLIaWfm5r730vuDxkBBjvg== 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 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=fYpi6BWLrFsDgWkY6lKaLDv7fGKnVaMTwGHIzv+uXvY=; b=JW7sNaF50/Inp40Aw4T7zQNMrFhem4tJ4qkX8XK0ZOxrUcMDRPJYM/h2k13ELOknQFJ6SnEBTHFVgSiIgQwdMgJ7qa0MT4aA0/sLYO8CCDsXg5XYqcEel4zKm80kz/QApXhIA8RTbFgFEMAvLzjj3QMfVjrLXnYsG6oh7cw/Fvc7BiCQyTuEd5A2JW/XjxalA4SIJa6JEit9pfwQ1h7U7mdPrsZUJQpuV1f9Rg1rGDTBcO3Fgz0c7UTTXsXo4MQs00hUoct+tGYqZ3pYnGk+Xy08TQT5pNybjoSot+pmY9aLWyU4iN9nZ1QbtizIImVwAC+8yQuqaKttLJEEqHqpIw== Received: from MW4PR04CA0213.namprd04.prod.outlook.com (2603:10b6:303:87::8) by DS0PR12MB8343.namprd12.prod.outlook.com (2603:10b6:8:fd::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 07:59:10 +0000 Received: from CO1NAM11FT067.eop-nam11.prod.protection.outlook.com (2603:10b6:303:87:cafe::d1) by MW4PR04CA0213.outlook.office365.com (2603:10b6:303:87::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:10 +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 CO1NAM11FT067.mail.protection.outlook.com (10.13.174.212) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:10 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.36; Sun, 8 Jan 2023 23:58:57 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:58:57 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:56 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" Subject: [PATCH 5/7] compress/mlx5: add xform validate function Date: Mon, 9 Jan 2023 09:58:36 +0200 Message-ID: <20230109075838.2508039-6-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT067:EE_|DS0PR12MB8343:EE_ X-MS-Office365-Filtering-Correlation-Id: fc3575a7-63f2-454f-417e-08daf217643f X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RGuw3mY+b+vsMIdhMH2LNuTTIqh+qClZyYRsS5Q5J1b0Hi/sZAFKGXzZltmAKV6yqeiBIGQSau12Wwx29f+y8f4YyuOlpNd9djhCdam8qeI5I3Z0Pt0FBwgFPqBdpbfox7Wyqh3jKXFVO/u0TMqmOiexBNmxYQDtibhnUT+Er6/35tjurbcFrJfAZG/Ra1pBT6o+vExAkWRQ5KT22GB2vDofL/2+J6seqcnHNCG2p9JAbcjRmxK0mPgcUJVau/W3iv8xIFjlcYAfmOsHSNpy/aquiNusvR5zd7w8r1B82O5s6/wUrHOagjWmKH6K1C7Q1meqtPhwIuhUt1slXydzksVqNbd4VEPOTXA6ZLBYK7eg067YnBizPvC0WKQz/33j6rAGgibVPWyu0ZEMyaegDK34IZz2vPAAuqxhbqcb8w6zYvYTsm9R1PycBuNdAI19Kdc8Py4XX6+OXIQNMZU16+z47ACvt6SCu55tLZJtTtTbG1GqJy1PN/0kxIyuhweCdmY32V1gaainzv4krSetsIrE/yQZ8esY1vC/8xqRS7HuYuhCqEjLH3DpEDMKxAK3Gk0/yU94Gtqq3AkOgDEURgESHXgXyL5AfjWKBxxMDCjSzsKXNb31AzuZrVKUh3rvSIAyut9E7yMwSSSqY405u4iMlksSUzxiP2E3UZgROvQeHYXm2U66EruCYzDcp15y 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:(13230022)(4636009)(346002)(376002)(136003)(396003)(39860400002)(451199015)(40470700004)(46966006)(36840700001)(40460700003)(426003)(41300700001)(47076005)(2616005)(54906003)(316002)(336012)(36756003)(6916009)(1076003)(70206006)(4326008)(70586007)(8676002)(86362001)(82310400005)(8936002)(36860700001)(356005)(7636003)(82740400003)(5660300002)(83380400001)(40480700001)(55016003)(2906002)(6666004)(6286002)(26005)(186003)(478600001)(7696005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:10.4820 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fc3575a7-63f2-454f-417e-08daf217643f 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: CO1NAM11FT067.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8343 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 Separate the xform validations from create function into new function. The new function checks caps directly from HCA attr structure, so all capabilities in priv structure were removed. Signed-off-by: Michael Baum --- drivers/compress/mlx5/mlx5_compress.c | 55 +++++++++++++-------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index f03a50b9ee..48d08335db 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -45,13 +45,6 @@ struct mlx5_compress_priv { struct rte_compressdev_config dev_config; LIST_HEAD(xform_list, mlx5_compress_xform) xform_list; rte_spinlock_t xform_sl; - /* HCA caps */ - uint32_t mmo_decomp_sq:1; - uint32_t mmo_decomp_qp:1; - uint32_t mmo_comp_sq:1; - uint32_t mmo_comp_qp:1; - uint32_t mmo_dma_sq:1; - uint32_t mmo_dma_qp:1; uint32_t log_block_sz; uint32_t crc32_opaq_offs; }; @@ -178,6 +171,7 @@ mlx5_compress_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, uint32_t max_inflight_ops, int socket_id) { struct mlx5_compress_priv *priv = dev->data->dev_private; + struct mlx5_hca_attr *attr = &priv->cdev->config.hca_attr; struct mlx5_compress_qp *qp; struct mlx5_devx_cq_attr cq_attr = { .uar_page_id = mlx5_os_get_devx_uar_page_id(priv->uar.obj), @@ -238,12 +232,11 @@ mlx5_compress_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, goto err; } qp_attr.cqn = qp->cq.cq->id; - qp_attr.ts_format = - mlx5_ts_format_conv(priv->cdev->config.hca_attr.qp_ts_format); + qp_attr.ts_format = mlx5_ts_format_conv(attr->qp_ts_format); qp_attr.num_of_receive_wqes = 0; qp_attr.num_of_send_wqbbs = RTE_BIT32(log_ops_n); - qp_attr.mmo = priv->mmo_decomp_qp || priv->mmo_comp_qp || - priv->mmo_dma_qp; + qp_attr.mmo = attr->mmo_decompress_qp_en || attr->mmo_compress_qp_en || + attr->mmo_dma_qp_en; ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp->qp, qp_attr.num_of_send_wqbbs * MLX5_WQE_SIZE, &qp_attr, socket_id); @@ -276,21 +269,17 @@ mlx5_compress_xform_free(struct rte_compressdev *dev, void *xform) } static int -mlx5_compress_xform_create(struct rte_compressdev *dev, - const struct rte_comp_xform *xform, - void **private_xform) +mlx5_compress_xform_validate(const struct rte_comp_xform *xform, + const struct mlx5_hca_attr *attr) { - struct mlx5_compress_priv *priv = dev->data->dev_private; - struct mlx5_compress_xform *xfrm; - uint32_t size; - switch (xform->type) { case RTE_COMP_COMPRESS: if (xform->compress.algo == RTE_COMP_ALGO_NULL && - !priv->mmo_dma_qp && !priv->mmo_dma_sq) { + !attr->mmo_dma_qp_en && !attr->mmo_dma_sq_en) { DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?"); return -ENOTSUP; - } else if (!priv->mmo_comp_qp && !priv->mmo_comp_sq) { + } else if (!attr->mmo_compress_qp_en && + !attr->mmo_compress_sq_en) { DRV_LOG(ERR, "Not enough capabilities to support compress operation, maybe old FW/OFED version?"); return -ENOTSUP; } @@ -305,10 +294,11 @@ mlx5_compress_xform_create(struct rte_compressdev *dev, break; case RTE_COMP_DECOMPRESS: if (xform->decompress.algo == RTE_COMP_ALGO_NULL && - !priv->mmo_dma_qp && !priv->mmo_dma_sq) { + !attr->mmo_dma_qp_en && !attr->mmo_dma_sq_en) { DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?"); return -ENOTSUP; - } else if (!priv->mmo_decomp_qp && !priv->mmo_decomp_sq) { + } else if (!attr->mmo_decompress_qp_en && + !attr->mmo_decompress_sq_en) { DRV_LOG(ERR, "Not enough capabilities to support decompress operation, maybe old FW/OFED version?"); return -ENOTSUP; } @@ -321,7 +311,22 @@ mlx5_compress_xform_create(struct rte_compressdev *dev, DRV_LOG(ERR, "Xform type should be compress/decompress"); return -ENOTSUP; } + return 0; +} + +static int +mlx5_compress_xform_create(struct rte_compressdev *dev, + const struct rte_comp_xform *xform, + void **private_xform) +{ + struct mlx5_compress_priv *priv = dev->data->dev_private; + struct mlx5_compress_xform *xfrm; + uint32_t size; + int ret; + ret = mlx5_compress_xform_validate(xform, &priv->cdev->config.hca_attr); + if (ret < 0) + return ret; xfrm = rte_zmalloc_socket(__func__, sizeof(*xfrm), 0, priv->dev_config.socket_id); if (xfrm == NULL) @@ -746,12 +751,6 @@ mlx5_compress_dev_probe(struct mlx5_common_device *cdev, compressdev->feature_flags = RTE_COMPDEV_FF_HW_ACCELERATED; priv = compressdev->data->dev_private; priv->log_block_sz = devarg_prms.log_block_sz; - priv->mmo_decomp_sq = attr->mmo_decompress_sq_en; - priv->mmo_decomp_qp = attr->mmo_decompress_qp_en; - priv->mmo_comp_sq = attr->mmo_compress_sq_en; - priv->mmo_comp_qp = attr->mmo_compress_qp_en; - priv->mmo_dma_sq = attr->mmo_dma_sq_en; - priv->mmo_dma_qp = attr->mmo_dma_qp_en; if (attr->gga_comp_opaq_new_version) crc32_opaq_offset = offsetof(union mlx5_gga_compress_opaque, v2.crc32); From patchwork Mon Jan 9 07:58:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121719 X-Patchwork-Delegate: thomas@monjalon.net 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 3CF424237B; Mon, 9 Jan 2023 08:59:45 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C7B7042D38; Mon, 9 Jan 2023 08:59:14 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2051.outbound.protection.outlook.com [40.107.92.51]) by mails.dpdk.org (Postfix) with ESMTP id CA57F40E50 for ; Mon, 9 Jan 2023 08:59:13 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EM/0AU0q8DywBzsBY7A95EiLkBR1KgVHXZ6QuWYUdod77PV/EOHWrPbWvyFdcVrsSSBggtoaz67CdQQAr9O+IAcRm+Ti6BI+/Tzu+lmGCcGspGY09okAwSeLF1xuTGo4m2oc/vlW4J1NvyBusSe+q/0/L7n/cWGqM8dhz59ddPtM01iuBuiKixiB/gVsuWrIXMpj4Qbe3lYgqE6IO1tFLIR6TYOHbJHVqzjRf23qY1zhb8pEZxlvv+8gw26gvT/WMJP7UPxFcZGEiVDdlA+h0Ozez/YP7DTQmmpD3L7TVsEiDjYvlTfzAICAlQE6h5Ls9pdJ9k7FVfABHRer2HdlNQ== 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=LuuNQKJPlw8t7plvU//pgT5DrEYlG8T47zEqquEBy+o=; b=QjF44jraIbWYkNHN4g8uXYWCUGB6J9ITi/VDiYniG1BDX8i53se/XlTTXz3T3jUmSJJZshwKfwxdwrH0vQ7idgtyuvPUGxlBmYiLsx47mQy3bYvzySAtuyi61wJlxQhWqgQJqkIS2Ds3Q7uMbQY8dGeCzR/5GnELUm86/HNjUi7w5g9R/pd9HySxjP9Ir8Z9lyuibpcoao64dIBUdZax0NnmIkhC1RfBow29+SgjxAJtFY5I+AMw1Wq8jCR2xQ14yviMKoa32402Z6dg1DAb3aIqnV7iaycC/+MaY49eyTKFu9xJ8lb+mhIoCDpPo9l13leke5/1loccTNhfu8CTZQ== 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 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=LuuNQKJPlw8t7plvU//pgT5DrEYlG8T47zEqquEBy+o=; b=GsZRAI6+kWPa8wq70U21uebriOJmgk/WBINz3Xz995t6FWHXhvctA9Zdp4Gk8t1/ObEMYgCYCiQSRDem/4R+7kNe5C1kY0fQCoRyI3IyegiGrVAK6v+E6fHxNaCl0XjuNcGRIBifz+CXZLZX5jLyOp64ICKPaElPSq8dt+iVhGLnv++eUhrj6iqa+TITr/v/QubpM8rmzmTnQqGAy0rVPESK7BHRSDvW3DlOzBvP03ZbEh+HQwqfM+O5KKjedbPlDN9mXaQiRHVk6qnxbkXmhIQ6OwRRXKtapRtHktc48Nd4UbRM/ROm5q+DeDro7SIcBqYWCIxd5nAblikZHk0U6A== Received: from BN7PR02CA0015.namprd02.prod.outlook.com (2603:10b6:408:20::28) by PH0PR12MB5648.namprd12.prod.outlook.com (2603:10b6:510:14b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 07:59:12 +0000 Received: from BN8NAM11FT052.eop-nam11.prod.protection.outlook.com (2603:10b6:408:20:cafe::83) by BN7PR02CA0015.outlook.office365.com (2603:10b6:408:20::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:11 +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 BN8NAM11FT052.mail.protection.outlook.com (10.13.177.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:11 +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.986.36; Sun, 8 Jan 2023 23:58:59 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:58:59 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:57 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" Subject: [PATCH 6/7] common/mlx5: add LZ4 capabilities check Date: Mon, 9 Jan 2023 09:58:37 +0200 Message-ID: <20230109075838.2508039-7-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT052:EE_|PH0PR12MB5648:EE_ X-MS-Office365-Filtering-Correlation-Id: d6f7c03f-d7e9-4185-25a2-08daf21764ed X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e2ZD5qapejRXzZ6V4U9KJ0Q9siQYP/0gjrZtamsJZH7klT3PxqMOzjY3jz4Zru/yNMEgn95LhNI/ovtT7hSjHA2Hkh16np3nssBkgs6K/1yEoLvUWdZcVcqHAWtRbgtmfuUZcK0l9e27S+7lYYIp9vKwhohaul6JTYg2P6o8otHAlUzDzYnhH/C26IUwotorlnDQ4RjzEZOZXDJVw1ttGfD4sReio9GsoBYrxWJ6p8AAzTib9tK+4WrTw/j7NXTJuyRGuxzEc3qrJMINhmvVT3y0Y3gttokXmmj2kHblnioX09U1WvtA5yrV8RnhvbgIhnwRdo6911p+8jpp/aCwr6C2AwY2vtXfE39wz2gwPeRQY0PJBHVJEbQbQdxIt188eP3BnuPGGNzFhzqA2vWDHPmBu6bafEycc8IpXv0EOyHE48XPBa8HQILUQYrrW3hTIn3VtGbTiZF9xNMviI0ErJWfPNTSntex4143UkusiM8Aw/x2KVsls6kqqwKiGGfoNjgxlPe+Ry5jZymr3AxWpCwhPEWbZOiVy5Rdh3W7ANl92/ao6DqYQooYPhQ98vSw2Wh+c7QQ9TxseX3Dhxilc23QtWx13uWQE+gKbbcJD5HTNHNu3ZgViTTclIEIKocDbeVg2A6/xmKr7Svua9Nudy3Z4r+Hs10Iz/4DhChj7RbTlW3imWEYt0zLkgVR+0aTeJCeQ+y0ZpIAlIl+YhRX7Q== 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:(13230022)(4636009)(39860400002)(346002)(136003)(396003)(376002)(451199015)(46966006)(40470700004)(36840700001)(8676002)(83380400001)(36860700001)(86362001)(7636003)(82740400003)(356005)(5660300002)(2906002)(4326008)(70586007)(70206006)(6916009)(8936002)(41300700001)(82310400005)(55016003)(40480700001)(6286002)(26005)(186003)(6666004)(47076005)(426003)(1076003)(2616005)(336012)(54906003)(40460700003)(316002)(478600001)(7696005)(36756003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:11.5748 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d6f7c03f-d7e9-4185-25a2-08daf21764ed 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: BN8NAM11FT052.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5648 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 Add capabilities check for LZ4 decompression algorithm. Signed-off-by: Michael Baum --- drivers/common/mlx5/mlx5_devx_cmds.c | 6 ++++++ drivers/common/mlx5/mlx5_devx_cmds.h | 3 +++ drivers/common/mlx5/mlx5_prm.h | 16 ++++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 8280785e2f..452f37489c 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -998,6 +998,12 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, log_compress_mmo_size); attr->log_max_mmo_decompress = MLX5_GET(cmd_hca_cap, hcattr, log_decompress_mmo_size); + attr->decomp_lz4_data_only_en = MLX5_GET(cmd_hca_cap, hcattr, + decompress_lz4_data_only); + attr->decomp_lz4_no_checksum_en = MLX5_GET(cmd_hca_cap, hcattr, + decompress_lz4_no_checksum); + attr->decomp_lz4_checksum_en = MLX5_GET(cmd_hca_cap, hcattr, + decompress_lz4_checksum); attr->cqe_compression = MLX5_GET(cmd_hca_cap, hcattr, cqe_compression); attr->mini_cqe_resp_flow_tag = MLX5_GET(cmd_hca_cap, hcattr, mini_cqe_resp_flow_tag); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index dac86e8a5b..6e92035aaa 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -267,6 +267,9 @@ struct mlx5_hca_attr { uint32_t log_max_mmo_dma:5; uint32_t log_max_mmo_compress:5; uint32_t log_max_mmo_decompress:5; + uint32_t decomp_lz4_data_only_en:1; + uint32_t decomp_lz4_no_checksum_en:1; + uint32_t decomp_lz4_checksum_en:1; uint32_t umr_modify_entity_size_disabled:1; uint32_t umr_indirect_mkey_disabled:1; uint32_t log_min_stride_wqe_sz:5; diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index c3a1ce11a4..db7ccdd06d 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -578,9 +578,19 @@ struct mlx5_rdma_write_wqe { #define MLX5_OPC_MOD_MMO_DECOMP 0x3u #define MLX5_OPC_MOD_MMO_DMA 0x1u +#define WQE_GGA_DECOMP_DEFLATE 0x0u +#define WQE_GGA_DECOMP_LZ4 0x2u + +#define MLX5_GGA_DECOMP_LZ4_BLOCK_WITHOUT_CHECKSUM 0x1u +#define MLX5_GGA_DECOMP_LZ4_BLOCK_WITH_CHECKSUM 0x2u + #define WQE_GGA_COMP_WIN_SIZE_OFFSET 12u #define WQE_GGA_COMP_BLOCK_SIZE_OFFSET 16u #define WQE_GGA_COMP_DYNAMIC_SIZE_OFFSET 20u +#define WQE_GGA_DECOMP_PARAMS_OFFSET 20u +#define WQE_GGA_DECOMP_TYPE_OFFSET 8u +#define WQE_GGA_DECOMP_BLOCK_INDEPENDENT_OFFSET 22u + #define MLX5_GGA_COMP_WIN_SIZE_UNITS 1024u #define MLX5_GGA_COMP_WIN_SIZE_MAX (32u * MLX5_GGA_COMP_WIN_SIZE_UNITS) #define MLX5_GGA_COMP_LOG_BLOCK_SIZE_MAX 15u @@ -599,7 +609,7 @@ struct mlx5_gga_wqe { uint32_t opcode; uint32_t sq_ds; uint32_t flags; - uint32_t gga_ctrl1; /* ws 12-15, bs 16-19, dyns 20-23. */ + uint32_t gga_ctrl1; uint32_t gga_ctrl2; uint32_t opaque_lkey; uint64_t opaque_vaddr; @@ -1434,7 +1444,9 @@ struct mlx5_ifc_cmd_hca_cap_bits { u8 log_dma_mmo_size[0x5]; u8 reserved_at_70[0x3]; u8 log_compress_mmo_size[0x5]; - u8 reserved_at_78[0x3]; + u8 decompress_lz4_data_only[0x1]; + u8 decompress_lz4_no_checksum[0x1]; + u8 decompress_lz4_checksum[0x1]; u8 log_decompress_mmo_size[0x5]; u8 log_max_srq_sz[0x8]; u8 log_max_qp_sz[0x8]; From patchwork Mon Jan 9 07:58:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 121720 X-Patchwork-Delegate: thomas@monjalon.net 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 50AF14237B; Mon, 9 Jan 2023 08:59:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B8BAA42D3E; Mon, 9 Jan 2023 08:59:15 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2062.outbound.protection.outlook.com [40.107.243.62]) by mails.dpdk.org (Postfix) with ESMTP id 43C2040E50 for ; Mon, 9 Jan 2023 08:59:14 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=btMiZDqdt34e3ZEik6D29s1dMaqELylffuwO9rCMPj80giFgf5jLdiMwJei4F+T4Nvw06d8bzb+X/aReX1+eOtg6HmVkCo/qr67ev8Kv4Z/ivDshfxtd1QVsGG7xAEeOTG6/K+UIqwHz9bil+xiLBvJxLFAx/bnW2hhk6C2Hz8tgHNhxP9sJR7q3meIYc9TCJomun+aBeU89ypOqkR6I8bV1YxFQcNMkKwflLTujVXJK5shfrhJq+By0tuFiWl//QNZHHPJ5H6Pv+EvE5C6Su/CxPUSgogYkAOrcKmTeVjjOvfIgpJ5keQgnzXtsD0FioraR+pkFJvIBedPLoRLsOw== 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=nwz8jA3ZoIX6llTDAfGZ4HuI5DGqdjx2WuwNG0Y8usY=; b=LNepZqUHlkzUIQJckitTPJHCyHpXsrxxBM39ERq4tQgiDlNho2AYNKFq+hr+z6aEmjKKDgvMT+f0nJs4pbp5vYdrHVBSdQ7Yu796Kekn3rLazwquM1x6XBOF/qPzrz9nad1MrX+mh5MY0sn4dXBL5sZXNj+/jjbtdA1/bX2nNMjetlNunvD8tDVRALJzLP4Vgv1+UvJ6U9Vfseo2GWxSOJbVMEfwbnzQfvZ7Nb/8d8AbjP12hpXRrnfdq7btByx0PZUV3T2GmDCxjqaWJ4klvFBxGSrIf+Qh/klCcIWlNpQqtTeF4YIXy3M+/Wxi93tj0aKBlcg/UZDT0likEyEhLQ== 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 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=nwz8jA3ZoIX6llTDAfGZ4HuI5DGqdjx2WuwNG0Y8usY=; b=PRT2JPxp7kYTatVDiWV+M9DdH0umH2DpUwQkozUbuUzTI9uBM4Jv2+YgEdE0EH/D06kaW2gJIge2vrfPCpQgRsJs9cozKVyNtibiTtjtALAwkJKGbihmE5w4rcxpuLQ+v35lLz6x2bsRFuOJOxKozIxgc1hNMTi7ejqi1SERU1vCIgSdG7mTyXdJ90pmmBF9jQtYvK2WEzJ7GCZ+rdU0FaTblY4xJjDwjODgOCaSiIzh6qOPudLE9pvyO8kftHhJZbFq+ct+O470g5pXREFX3YEB1qb3NyCjclJUpkSYxzI2vapLwlsMjzYnFiYX8iOsuqGWwF/fiJSpvuurGHSYVg== Received: from BN0PR03CA0060.namprd03.prod.outlook.com (2603:10b6:408:e7::35) by SJ0PR12MB5634.namprd12.prod.outlook.com (2603:10b6:a03:429::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 07:59:12 +0000 Received: from BN8NAM11FT061.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e7:cafe::e9) by BN0PR03CA0060.outlook.office365.com (2603:10b6:408:e7::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:12 +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 BN8NAM11FT061.mail.protection.outlook.com (10.13.177.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 07:59:11 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.986.36; Sun, 8 Jan 2023 23:59:01 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 8 Jan 2023 23:59:01 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Sun, 8 Jan 2023 23:58:59 -0800 From: Michael Baum To: CC: Matan Azrad , Akhil Goyal , "Thomas Monjalon" Subject: [PATCH 7/7] compress/mlx5: add support for LZ4 algorithm Date: Mon, 9 Jan 2023 09:58:38 +0200 Message-ID: <20230109075838.2508039-8-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230109075838.2508039-1-michaelba@nvidia.com> References: <20230109075838.2508039-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT061:EE_|SJ0PR12MB5634:EE_ X-MS-Office365-Filtering-Correlation-Id: e3de1487-0446-4e97-11cc-08daf2176525 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: v+OGCZpSH3bm+ZJUBBBNdA607l9qjkJuObtcsysFLB1LjhcECXMfHanfyn4mzib/fdpdR6uh+dhQV6veAvg7E9siOKzWa+i38oFgtQRKxjNsRvy7JQ67FyIdr49GqlueFO8i5zVv+alrZn6DGBZEGfxUlakPfLr64eK6IvNTNc9t5YCOFyjUCK0xhMyOL+2XFifrcmAPBNxB/uOuCaNPCdvPY01cAj82m2EFarUme2gTmfUAfNHQQ0/3Vu3T71YoT/cfwJqR1eXCLCAlCR7aVqPJ3OM68jcvoAOgYv9kftSQJTac91kzaNj8Ry2FhTiiyzEFD7PK4mjjb4qsTxvznKD3zMVH/G6Z7n4E5rQCv5uqPHVtEjKmBSTMMoAzFXhLlGyxiIEA7vPMuMeMAFonoRU+NErZDTrEQJ6+dqd22GWnV0U7GbPBjIlYd9i2mlUGZXh9lHOvrUBiTEC9avEPXF+Pz7YkxDJ2vf1vfKab6SX3JpHqBSf+N0tjXbENhuAgIlIDw3GRrFOpC5LMjuh3megqzNZpF0IFTZG7kJns/cBTvOY5+4X+hLRRCOD79oriXc5f7L+MimIAssnJJuVHM/MN67GhGy4Giy2yfUQePRpPQ/f16L95BEq7mARSU6JUR4QdGreI1Woq0zaMfvNcDbDiyoHbVbmhJvuDUMr6u70kIWOPuqHL05fYt3GuX898XgphwBIU/6EhqiyPTwf+cQ== 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:(13230022)(4636009)(39860400002)(396003)(376002)(346002)(136003)(451199015)(46966006)(40470700004)(36840700001)(2906002)(478600001)(186003)(6666004)(7696005)(26005)(6286002)(54906003)(47076005)(316002)(2616005)(6916009)(36756003)(70586007)(8676002)(70206006)(4326008)(336012)(426003)(40460700003)(1076003)(41300700001)(83380400001)(40480700001)(30864003)(5660300002)(82740400003)(8936002)(55016003)(36860700001)(82310400005)(86362001)(356005)(7636003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 07:59:11.9569 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e3de1487-0446-4e97-11cc-08daf2176525 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: BN8NAM11FT061.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5634 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 Add support for decompress LZ4 algorithm for mlx5 PMD. Signed-off-by: Michael Baum --- doc/guides/compressdevs/features/mlx5.ini | 18 +-- doc/guides/compressdevs/mlx5.rst | 49 +++++++- doc/guides/rel_notes/release_23_03.rst | 4 + drivers/compress/mlx5/mlx5_compress.c | 145 ++++++++++++++++++---- 4 files changed, 177 insertions(+), 39 deletions(-) diff --git a/doc/guides/compressdevs/features/mlx5.ini b/doc/guides/compressdevs/features/mlx5.ini index 891ce47936..28b050144a 100644 --- a/doc/guides/compressdevs/features/mlx5.ini +++ b/doc/guides/compressdevs/features/mlx5.ini @@ -4,10 +4,14 @@ ; Supported features of 'MLX5' compression driver. ; [Features] -HW Accelerated = Y -Deflate = Y -Adler32 = Y -Crc32 = Y -Adler32&Crc32 = Y -Fixed = Y -Dynamic = Y +HW Accelerated = Y +Deflate = Y +LZ4 = Y +Adler32 = Y +Crc32 = Y +Adler32&Crc32 = Y +xxHash32 = Y +Fixed = Y +Dynamic = Y +LZ4 Block Checksum = Y +LZ4 Block Independence = Y diff --git a/doc/guides/compressdevs/mlx5.rst b/doc/guides/compressdevs/mlx5.rst index 37839a59e3..c834025732 100644 --- a/doc/guides/compressdevs/mlx5.rst +++ b/doc/guides/compressdevs/mlx5.rst @@ -14,8 +14,8 @@ NVIDIA MLX5 Compress Driver that are now NVIDIA trademarks. The mlx5 compress driver library -(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2** -families of 25/50/100/200 Gb/s adapters. +(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2** and +**NVIDIA BlueField-3** families of 25/50/100/200 Gb/s adapters. Design ------ @@ -39,11 +39,27 @@ Features Compress mlx5 PMD has support for: -Compression/Decompression algorithm: +- Compression +- Decompression +- DMA -* DEFLATE. +Algorithms +---------- -NULL algorithm for DMA operations. +NULL algorithm +~~~~~~~~~~~~~~ + +NULL algorithm is the way to perform DMA operations. +It works through either compress or decompress operation. + +Shareable transformation. + +Checksum generation: + +* CRC32, Adler32 and combined checksum. + +DEFLATE algorithm +~~~~~~~~~~~~~~~~~ Huffman code type: @@ -60,11 +76,31 @@ Checksum generation: * CRC32, Adler32 and combined checksum. +LZ4 algorithm +~~~~~~~~~~~~~ + +Support for flags: + +* ``RTE_COMP_LZ4_FLAG_BLOCK_CHECKSUM`` +* ``RTE_COMP_LZ4_FLAG_BLOCK_INDEPENDENCE`` + +Window size support: + +1KB, 2KB, 4KB, 8KB, 16KB and 32KB. + +Shareable transformation. + +Checksum generation: + +* xxHash-32 checksum. + Limitations ----------- * Scatter-Gather, SHA and Stateful are not supported. * Non-compressed block is not supported in compress (supported in decompress). +* Compress operation is not supported by BlueField-3. +* LZ4 algorithm is not supported by BlueField-2. Driver options -------------- @@ -75,7 +111,7 @@ for an additional list of options shared with other mlx5 drivers. - ``log-block-size`` parameter [int] Log of the Huffman block size in the Deflate algorithm. - Values from [4-15]; value x means block size is 2^x. + Values from [4-15]; value x means block size is 2\ :sup:`x`. The default value is 15. @@ -83,6 +119,7 @@ Supported NICs -------------- * NVIDIA\ |reg| BlueField-2 SmartNIC +* NVIDIA\ |reg| BlueField-3 SmartNIC Prerequisites ------------- diff --git a/doc/guides/rel_notes/release_23_03.rst b/doc/guides/rel_notes/release_23_03.rst index 7ae012ae33..fe4543e0ce 100644 --- a/doc/guides/rel_notes/release_23_03.rst +++ b/doc/guides/rel_notes/release_23_03.rst @@ -63,6 +63,10 @@ New Features * Added support for ``RTE_COMP_CHECKSUM_XXHASH32``. * Added support for ``lz4`` in test-compress-perf algo options. +* **Updated NVIDIA mlx5 compress PMD.** + + * Added LZ4 algorithm support for decompress operation. + * **Allowed test single compress operation in test-compress-perf.** Enable the application options for testing only compress and only decompress. diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index 48d08335db..5c0357c73e 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -24,6 +24,7 @@ #define MLX5_COMPRESS_DRIVER_NAME mlx5_compress #define MLX5_COMPRESS_MAX_QPS 1024 #define MLX5_COMP_MAX_WIN_SIZE_CONF 6u +#define MLX5_COMP_NUM_SUP_ALGO 4 struct mlx5_compress_devarg_params { uint32_t log_block_sz; @@ -43,6 +44,7 @@ struct mlx5_compress_priv { struct mlx5_common_device *cdev; /* Backend mlx5 device. */ struct mlx5_uar uar; struct rte_compressdev_config dev_config; + struct rte_compressdev_capabilities caps[MLX5_COMP_NUM_SUP_ALGO]; LIST_HEAD(xform_list, mlx5_compress_xform) xform_list; rte_spinlock_t xform_sl; uint32_t log_block_sz; @@ -70,36 +72,16 @@ static pthread_mutex_t priv_list_lock = PTHREAD_MUTEX_INITIALIZER; int mlx5_compress_logtype; -static const struct rte_compressdev_capabilities mlx5_caps[] = { - { - .algo = RTE_COMP_ALGO_NULL, - .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | - RTE_COMP_FF_CRC32_CHECKSUM | - RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | - RTE_COMP_FF_SHAREABLE_PRIV_XFORM, - }, - { - .algo = RTE_COMP_ALGO_DEFLATE, - .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | - RTE_COMP_FF_CRC32_CHECKSUM | - RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | - RTE_COMP_FF_SHAREABLE_PRIV_XFORM | - RTE_COMP_FF_HUFFMAN_FIXED | - RTE_COMP_FF_HUFFMAN_DYNAMIC, - .window_size = {.min = 10, .max = 15, .increment = 1}, - }, - RTE_COMP_END_OF_CAPABILITIES_LIST() -}; - static void mlx5_compress_dev_info_get(struct rte_compressdev *dev, struct rte_compressdev_info *info) { - RTE_SET_USED(dev); - if (info != NULL) { + if (dev != NULL && info != NULL) { + struct mlx5_compress_priv *priv = dev->data->dev_private; + info->max_nb_queue_pairs = MLX5_COMPRESS_MAX_QPS; info->feature_flags = RTE_COMPDEV_FF_HW_ACCELERATED; - info->capabilities = mlx5_caps; + info->capabilities = priv->caps; } } @@ -280,7 +262,11 @@ mlx5_compress_xform_validate(const struct rte_comp_xform *xform, return -ENOTSUP; } else if (!attr->mmo_compress_qp_en && !attr->mmo_compress_sq_en) { - DRV_LOG(ERR, "Not enough capabilities to support compress operation, maybe old FW/OFED version?"); + DRV_LOG(ERR, "Not enough capabilities to support compress operation."); + return -ENOTSUP; + } + if (xform->compress.algo == RTE_COMP_ALGO_LZ4) { + DRV_LOG(ERR, "LZ4 compression is not supported."); return -ENOTSUP; } if (xform->compress.level == RTE_COMP_LEVEL_NONE) { @@ -291,6 +277,10 @@ mlx5_compress_xform_validate(const struct rte_comp_xform *xform, DRV_LOG(ERR, "SHA is not supported."); return -ENOTSUP; } + if (xform->compress.chksum == RTE_COMP_CHECKSUM_XXHASH32) { + DRV_LOG(ERR, "xxHash32 checksum isn't supported in compress operation."); + return -ENOTSUP; + } break; case RTE_COMP_DECOMPRESS: if (xform->decompress.algo == RTE_COMP_ALGO_NULL && @@ -302,6 +292,38 @@ mlx5_compress_xform_validate(const struct rte_comp_xform *xform, DRV_LOG(ERR, "Not enough capabilities to support decompress operation, maybe old FW/OFED version?"); return -ENOTSUP; } + if (xform->compress.algo == RTE_COMP_ALGO_LZ4) { + if (!attr->decomp_lz4_no_checksum_en && + !attr->decomp_lz4_checksum_en) { + DRV_LOG(ERR, "Not enough capabilities to support decompress LZ4 algorithm, maybe old FW/OFED version?"); + return -ENOTSUP; + } + if (xform->decompress.lz4.flags & + RTE_COMP_LZ4_FLAG_BLOCK_CHECKSUM) { + if (!attr->decomp_lz4_checksum_en) { + DRV_LOG(ERR, "Not enough capabilities to support decompress LZ4 block with checksum param, maybe old FW/OFED version?"); + return -ENOTSUP; + } + } else { + if (!attr->decomp_lz4_no_checksum_en) { + DRV_LOG(ERR, "Not enough capabilities to support decompress LZ4 block without checksum param, maybe old FW/OFED version?"); + return -ENOTSUP; + } + } + if (xform->decompress.chksum != + RTE_COMP_CHECKSUM_XXHASH32 && + xform->decompress.chksum != + RTE_COMP_CHECKSUM_NONE) { + DRV_LOG(ERR, "LZ4 algorithm supports only xxHash32 checksum."); + return -ENOTSUP; + } + } else { + if (xform->decompress.chksum == + RTE_COMP_CHECKSUM_XXHASH32) { + DRV_LOG(ERR, "Only LZ4 algorithm supports xxHash32 checksum."); + return -ENOTSUP; + } + } if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) { DRV_LOG(ERR, "SHA is not supported."); return -ENOTSUP; @@ -372,6 +394,27 @@ mlx5_compress_xform_create(struct rte_compressdev *dev, case RTE_COMP_ALGO_DEFLATE: xfrm->opcode += MLX5_OPC_MOD_MMO_DECOMP << WQE_CSEG_OPC_MOD_OFFSET; + xfrm->gga_ctrl1 += WQE_GGA_DECOMP_DEFLATE << + WQE_GGA_DECOMP_TYPE_OFFSET; + break; + case RTE_COMP_ALGO_LZ4: + xfrm->opcode += MLX5_OPC_MOD_MMO_DECOMP << + WQE_CSEG_OPC_MOD_OFFSET; + xfrm->gga_ctrl1 += WQE_GGA_DECOMP_LZ4 << + WQE_GGA_DECOMP_TYPE_OFFSET; + if (xform->decompress.lz4.flags & + RTE_COMP_LZ4_FLAG_BLOCK_CHECKSUM) + xfrm->gga_ctrl1 += + MLX5_GGA_DECOMP_LZ4_BLOCK_WITH_CHECKSUM << + WQE_GGA_DECOMP_PARAMS_OFFSET; + else + xfrm->gga_ctrl1 += + MLX5_GGA_DECOMP_LZ4_BLOCK_WITHOUT_CHECKSUM + << WQE_GGA_DECOMP_PARAMS_OFFSET; + if (xform->decompress.lz4.flags & + RTE_COMP_LZ4_FLAG_BLOCK_INDEPENDENCE) + xfrm->gga_ctrl1 += 1u << + WQE_GGA_DECOMP_BLOCK_INDEPENDENT_OFFSET; break; default: goto err; @@ -379,7 +422,7 @@ mlx5_compress_xform_create(struct rte_compressdev *dev, xfrm->csum_type = xform->decompress.chksum; break; default: - DRV_LOG(ERR, "Algorithm %u is not supported.", xform->type); + DRV_LOG(ERR, "Operation %u is not supported.", xform->type); goto err; } DRV_LOG(DEBUG, "New xform: gga ctrl1 = 0x%08X opcode = 0x%08X csum " @@ -646,6 +689,12 @@ mlx5_compress_dequeue_burst(void *queue_pair, struct rte_comp_op **ops, ((uint64_t)rte_be_to_cpu_32 (opaq[idx].data[crc32_idx + 1]) << 32); break; + case RTE_COMP_CHECKSUM_XXHASH32: + MLX5_ASSERT( + qp->priv->cdev->config.hca_attr.gga_comp_opaq_new_version); + op->output_chksum = (uint64_t)rte_be_to_cpu_32 + (opaq[idx].v2.xxh32); + break; default: break; } @@ -709,6 +758,49 @@ mlx5_compress_handle_devargs(struct mlx5_kvargs_ctrl *mkvlist, return 0; } +static void +mlx5_compress_fill_caps(struct mlx5_compress_priv *priv, + const struct mlx5_hca_attr *attr) +{ + struct rte_compressdev_capabilities caps[] = { + { + .algo = RTE_COMP_ALGO_NULL, + .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | + RTE_COMP_FF_CRC32_CHECKSUM | + RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | + RTE_COMP_FF_SHAREABLE_PRIV_XFORM, + }, + { + .algo = RTE_COMP_ALGO_DEFLATE, + .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | + RTE_COMP_FF_CRC32_CHECKSUM | + RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | + RTE_COMP_FF_SHAREABLE_PRIV_XFORM | + RTE_COMP_FF_HUFFMAN_FIXED | + RTE_COMP_FF_HUFFMAN_DYNAMIC, + .window_size = {.min = 10, .max = 15, .increment = 1}, + }, + { + .algo = RTE_COMP_ALGO_LZ4, + .comp_feature_flags = RTE_COMP_FF_XXHASH32_CHECKSUM | + RTE_COMP_FF_SHAREABLE_PRIV_XFORM | + RTE_COMP_FF_LZ4_BLOCK_INDEPENDENCE, + .window_size = {.min = 1, .max = 15, .increment = 1}, + }, + RTE_COMP_END_OF_CAPABILITIES_LIST() + }; + priv->caps[0] = caps[0]; + priv->caps[1] = caps[1]; + if (attr->decomp_lz4_checksum_en || attr->decomp_lz4_no_checksum_en) { + priv->caps[2] = caps[2]; + if (attr->decomp_lz4_checksum_en) + priv->caps[2].comp_feature_flags |= + RTE_COMP_FF_LZ4_BLOCK_WITH_CHECKSUM; + priv->caps[3] = caps[3]; + } else + priv->caps[2] = caps[3]; +} + static int mlx5_compress_dev_probe(struct mlx5_common_device *cdev, struct mlx5_kvargs_ctrl *mkvlist) @@ -761,6 +853,7 @@ mlx5_compress_dev_probe(struct mlx5_common_device *cdev, priv->crc32_opaq_offs = crc32_opaq_offset / 4; priv->cdev = cdev; priv->compressdev = compressdev; + mlx5_compress_fill_caps(priv, attr); if (mlx5_devx_uar_prepare(cdev, &priv->uar) != 0) { rte_compressdev_pmd_destroy(priv->compressdev); return -1;