From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7B488A0C4E; Sun, 5 Sep 2021 17:58:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 399E640042; Sun, 5 Sep 2021 17:58:20 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2057.outbound.protection.outlook.com [40.107.237.57]) by mails.dpdk.org (Postfix) with ESMTP id 50A254003D for ; Sun, 5 Sep 2021 17:58:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E4X/M5XeO/74IbPTKhuPq6TJmxpTkoZkID6MO3A8QlSsPp/qWaMCJxcETV4aVNPJ9TveYhDkiBLh1OKiUJVnP/auMZfU1NgUpaJ/USpp7SrlFj2HP2IT2hMoo92yZ/TPLmqMg+y+iRAIPJmb7KUTGISOHj/GncSptfIO/+w2TD3jQoiFM8wZwhna6iWckK0WR/ueSXu9VhtjOPNJQNJa2TzJBQIFMdtOov61zx4bvJF9JB0LuUBM0j+T2BMAY21uJ1TL8rACckYwfdDp54ZR79V7KuW/Nl/aqR0DiAGJE6Yj9pK4sX3Y1funNMYGEfaTmQuhiJT+LLDc2CJ0LlJNSA== 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; bh=Hph9jy2PXF1Ai9RbpsCrp598V1xWJSbxazuIkskWxlM=; b=Jh3ELY1m4cmRv1NyQZbpX1U3lZ/j/PEM35HJbs6GfNzX47PuhEXlrNPWoNxNkGb3DNUuNxeP7IyXd8tjbIJU0gU3K1/HuhQc5oFmkhSVvLxPKHvmJLkTDkDTFsyh5CnPO0wW7NbmhAa+p5qBk5ptam6WTyN4CGzmsAf3Z33HPGz5OATM7dj/WkGLIrIdhLLy5zuOHRQQFKgQiJEBEplLB9D84748ttZX74jk33nOB83duKWp/gz4Ddj8FwKXR4EG9uDGwSlhZVWtlCJHgFCQAnwszDigxA5ZMtPeL9DpgWHccvf1IG4//A/dDQTXswSJNhtE494EwwRBos2wkDJ7KQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hph9jy2PXF1Ai9RbpsCrp598V1xWJSbxazuIkskWxlM=; b=RC2xKV7jhjBCoLxrZZjlE5doNrhRN8kko2M/A8/zazwrOJq3b/PWWu74gZoY4fkvQXe2NbiOyAVY/Jdii/vvtanc1b/rJ++otxHHMYBqV2c+Obx6kxegNA3JQCaS++k2wc87hy+jChc0bHhGCo0Bj2pW7q6TnKlg354Ka4paPNOaAWAQLNuebqaEuotEpHHGK3axgGO1IS6DJHp4UCR+nCy2YTf9e1oZ51CR3FdJaum6/kgZHTfL5ajN3/FU4VdGvJGTbNgsIHqzhUJWwrztAI0wZ0HejO9/sc8nCU+ZAWOGz1bvYt59EfMu8H/7VX29nbf0LCa1WP3CqDUdjDcypw== Received: from MWHPR20CA0045.namprd20.prod.outlook.com (2603:10b6:300:ed::31) by BYAPR12MB3608.namprd12.prod.outlook.com (2603:10b6:a03:de::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.19; Sun, 5 Sep 2021 15:58:16 +0000 Received: from CO1NAM11FT040.eop-nam11.prod.protection.outlook.com (2603:10b6:300:ed:cafe::92) by MWHPR20CA0045.outlook.office365.com (2603:10b6:300:ed::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.17 via Frontend Transport; Sun, 5 Sep 2021 15:58:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by CO1NAM11FT040.mail.protection.outlook.com (10.13.174.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4478.19 via Frontend Transport; Sun, 5 Sep 2021 15:58:16 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 5 Sep 2021 15:58:10 +0000 From: Raja Zidane To: Date: Sun, 5 Sep 2021 15:57:53 +0000 Message-ID: <20210905155753.23024-1-rzidane@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210903142248.25710-1-rzidane@nvidia.com> References: <20210903142248.25710-1-rzidane@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a80a3bf1-fc27-43e3-2af0-08d97085f943 X-MS-TrafficTypeDiagnostic: BYAPR12MB3608: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3044; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EKtZ8zB+uIXIYGTbjyVoArLK/Fmy5Gx8FNs8jo+27gZbGhyhLq6UUIP5CDvcVo0iqnjQbnVezqcF6tLbYjztr35QXGxsLsy0/NyazKaPkoE2SjD/1L6x/nKJfL2sVdiZnzih2zRMSvycfNEJKwdWe6PowjDzo5xy+jd61QIAxvp3XW3QOFMmfg2QJxIzGr4VzMozwZC5sj1FiemhKOdiyMjVgloLkL3EfEHSI+LHwTctouVgARB+M0XskmuVH5lIiS7zLWb2bezQBV1EsPPOO2N7Rx0apJP7rQxLApi0wJo/FBO4iAm8GxAjMRtJJwJ0JReZ2v4wzhiqpYZzRDSokCgVBneZGwyGrbMJk2YfawAU0pQbhsCm8PQwr8bRpClYes6pWhDy93LAQ5iWsEC42M2jY5isvtJHsNicWgwXiM9mBcpgswW32G+tu6kl/AVaLAgtLrDAZxML0kCaBW9nTPbZHuAjtb48rYrkYKz6OK/94dAiaJJ0j8yQECyW2bANeufdoRY3KbUQVu5Q6Vc2Kw2GEwmrRSLOuzSDNb6EMtkmd87L9DVEiy9nqFihQUlaboaNle3GYdVIpGa3naJ0oCtwuQObgsxhEVDBNFin3xhd4HDf+dFG0MmYRmaxAiT0fYcczQDosznefu/U55h5SjtYo8SylgtJzbraAl+X9s/7iN2dYJchSiCLgXqAm9nw8sl+WV69KbBrmgJg8z5ikg== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(136003)(396003)(346002)(39860400002)(376002)(36840700001)(46966006)(186003)(6286002)(16526019)(70586007)(1076003)(70206006)(36860700001)(8936002)(26005)(426003)(86362001)(336012)(356005)(83380400001)(47076005)(55016002)(6666004)(8676002)(478600001)(7636003)(6916009)(316002)(5660300002)(7696005)(82310400003)(2616005)(36906005)(2906002)(82740400003)(36756003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2021 15:58:16.3426 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a80a3bf1-fc27-43e3-2af0-08d97085f943 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT040.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB3608 Subject: [dpdk-dev] [PATCH V2] compress/mlx5: allow partial transformations support 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 Sender: "dev" Currently compress, decompress and dma are allowed only when all 3 capabilities are on. A case where the user wants decompress offload, if decompress capability is on but one of compress, dma is off, is not allowed. Split compress/decompress/dma support check to allow partial transformations. V2: fix checkpatches errors. Signed-off-by: Raja Zidane Acked-by: Matan Azrad --- drivers/compress/mlx5/mlx5_compress.c | 61 ++++++++++++++++++++------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index d65e1e14da..1eb0f45b98 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -291,17 +291,44 @@ mlx5_compress_xform_create(struct rte_compressdev *dev, struct mlx5_compress_xform *xfrm; uint32_t size; - if (xform->type == RTE_COMP_COMPRESS && xform->compress.level == - RTE_COMP_LEVEL_NONE) { - DRV_LOG(ERR, "Non-compressed block is not supported."); - return -ENOTSUP; - } - if ((xform->type == RTE_COMP_COMPRESS && xform->compress.hash_algo != - RTE_COMP_HASH_ALGO_NONE) || (xform->type == RTE_COMP_DECOMPRESS && - xform->decompress.hash_algo != RTE_COMP_HASH_ALGO_NONE)) { - DRV_LOG(ERR, "SHA is not supported."); + switch (xform->type) { + case RTE_COMP_COMPRESS: + if (xform->compress.algo == RTE_COMP_ALGO_NULL && + !priv->mmo_dma_qp && !priv->mmo_dma_sq) { + 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) { + DRV_LOG(ERR, "Not enough capabilities to support compress operation, maybe old FW/OFED version?"); + return -ENOTSUP; + } + if (xform->compress.level == RTE_COMP_LEVEL_NONE) { + DRV_LOG(ERR, "Non-compressed block is not supported."); + return -ENOTSUP; + } + if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) { + DRV_LOG(ERR, "SHA is not supported."); + return -ENOTSUP; + } + break; + case RTE_COMP_DECOMPRESS: + if (xform->decompress.algo == RTE_COMP_ALGO_NULL && + !priv->mmo_dma_qp && !priv->mmo_dma_sq) { + 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) { + DRV_LOG(ERR, "Not enough capabilities to support decompress operation, maybe old FW/OFED version?"); + return -ENOTSUP; + } + if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) { + DRV_LOG(ERR, "SHA is not supported."); + return -ENOTSUP; + } + break; + default: + DRV_LOG(ERR, "Xform type should be compress/decompress"); return -ENOTSUP; } + xfrm = rte_zmalloc_socket(__func__, sizeof(*xfrm), 0, priv->dev_config.socket_id); if (xfrm == NULL) @@ -816,12 +843,16 @@ mlx5_compress_dev_probe(struct rte_device *dev) rte_errno = ENODEV; return -rte_errno; } - if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0 || - ((att.mmo_compress_sq_en == 0 || att.mmo_decompress_sq_en == 0 || - att.mmo_dma_sq_en == 0) && (att.mmo_compress_qp_en == 0 || - att.mmo_decompress_qp_en == 0 || att.mmo_dma_qp_en == 0))) { - DRV_LOG(ERR, "Not enough capabilities to support compress " - "operations, maybe old FW/OFED version?"); + if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0) { + DRV_LOG(ERR, "Failed to query device capabilities"); + claim_zero(mlx5_glue->close_device(ctx)); + rte_errno = ENOTSUP; + return -ENOTSUP; + } + if (!att.mmo_decompress_qp_en && !att.mmo_decompress_sq_en + && !att.mmo_compress_qp_en && !att.mmo_compress_sq_en + && !att.mmo_dma_qp_en && !att.mmo_dma_sq_en) { + DRV_LOG(ERR, "Not enough capabilities to support compress operations, maybe old FW/OFED version?"); claim_zero(mlx5_glue->close_device(ctx)); rte_errno = ENOTSUP; return -ENOTSUP; -- 2.17.1