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 D71A8A0C4D; Mon, 8 Nov 2021 13:34:39 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AFED341143; Mon, 8 Nov 2021 13:34:28 +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 3D88041136 for ; Mon, 8 Nov 2021 13:34:26 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LaecZzLYF0DjECakiQzlBN1sW139pY/SZtwhAu7KySCdroc6L8NyjC6fc8g8q2vxSht0eA781sIkTnXB7w8CmcJeGCUm7MjxiUm97FG9I1i7IJXlxGI9kQQkFvXhEDd9EcX7kheoHLAcCuVg3SEDev1/2OE4qZMzhU7Cw3/T9zEu24AD/gNjxrl0Pxp59eQn3l/gNBOIlsAJRxFwIzB+OvRtyvB9eZ8uJ6mlgaRCWs71edzpDwYFbarg0OXc4/qBsjUSt6Sa7IetJLP2dqKpSEqL4Tbdkzr2+YSPa8kwlswyAICsYstFKXaX6J5qKxAgjhuH9Ss4lnaJPHe1a8M9+g== 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=FQh86QGmNIJIlzu6ATX7aq/BOigsOs6YIb04pqjK5Ls=; b=Ni4yWfJlaBkQKkL79/ZYAtjD/3kL/iFkVN9MKL1ogGI+JVdX0OSsbvQ9ff3PuJJxxk9ynZfgxwF0otrysk97xstD8Lfa74FgdBt3j/QJXWUaQ1A48UQEqhdEiGfaFQc+FcF0AXc1c4GBzfS9JvkhpCA9Po1Rb84fAg0fiUD9DPCrxk+Lkyh2QMYe4MDuwAkgG4Khxglj5zg7BLdktZtcYxddCT0m8SZDE2QIxwFlzzazyYm5//TDLXpIMFFnrPDaGf/FK8W6rHub1gYY/8UXh+MlEuRTYGQs14ebhF4IK3/lGjgqa9/YpgeKCvRjZWjCi4E+nhloLiTDdoUBzsIueQ== 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=quarantine 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=FQh86QGmNIJIlzu6ATX7aq/BOigsOs6YIb04pqjK5Ls=; b=a/noTS4lzSgIRkdwywpvux/AFNkcScLr85zMUx5p9Pjl4ohvNoRfGzmHfN5GMQH7v3412Vp98wEEReBzK858tCnPMgJ545ALlB4oU0dIR0+QV/FN1rFljnX6BQDPv5mr+QxLA9iY9dDijg0L3yQexgFdlL4d6IMgpxJ31aBVK9+h1ez6prU5Q93WRQ7NaJyCTn4xH1mv8NCaVIm0q8CdJXSrLv9SUrbqd8Z0QGO5GxkBV7qnsCFYh6bAz2xLdHt4046n2rzq77cFlgsdHi1sVLCBX2Qo69LTqNkEBSe9x6PN7nLUIeVuJCMG6vB+ya9b3KvQnY2BOtZ+zRk1ueiaHw== Received: from BN6PR17CA0010.namprd17.prod.outlook.com (2603:10b6:404:65::20) by MN2PR12MB4173.namprd12.prod.outlook.com (2603:10b6:208:1d8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Mon, 8 Nov 2021 12:34:24 +0000 Received: from BN8NAM11FT004.eop-nam11.prod.protection.outlook.com (2603:10b6:404:65:cafe::3) by BN6PR17CA0010.outlook.office365.com (2603:10b6:404:65::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13 via Frontend Transport; Mon, 8 Nov 2021 12:34:24 +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 BN8NAM11FT004.mail.protection.outlook.com (10.13.176.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4669.10 via Frontend Transport; Mon, 8 Nov 2021 12:34:24 +0000 Received: from nvidia.com (172.20.187.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Mon, 8 Nov 2021 12:34:15 +0000 From: Raja Zidane To: CC: Matan Azrad Date: Mon, 8 Nov 2021 12:33:54 +0000 Message-ID: <20211108123354.2194-5-rzidane@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211108123354.2194-1-rzidane@nvidia.com> References: <20211104124929.24899-1-rzidane@nvidia.com> <20211108123354.2194-1-rzidane@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.20.187.6] X-ClientProxiedBy: HQMAIL107.nvidia.com (172.20.187.13) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dfc54d31-5e81-401e-7900-08d9a2b418e1 X-MS-TrafficTypeDiagnostic: MN2PR12MB4173: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2582; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Qap/kgUA4+XlazMwjWROGrwgEZQ2+mjEdPSAwG0M1pKzfx0SRhWXdH75UOBgGw34j2z+u4Y3nDBu1JruDHOHmp6DsC70jUuW0B5z3Kl7G2ahSWJ/gIqLC1OdzNaj05OQEwVdUyC/If1kXn1tmb9cxZwEhzCl5YyRyzSDhpM2JPg4BTXRaGhd/GCoxD4kqqUvhk8aZ3h+JwZX4FvaMIIR1gxnUkEjFFwwomSZuoXlftmFYcB7yCsHnHI0jnyyQARSGndx2fiMki7XyLZVl8Q9C2htoQ47WfbYvxu3K3MzF8mkmIRmtXUBidF95flNs9A3eU8UB8B37UuuBCmfmt8Nz1ayndBB8Lu7TpLls9qVXEXw57qDZXx6kn06hSUytTme8sSCFEKiXn/Yz9vG0Om59qbG0kIIVDZcgnF3aTGI+FwpojYAl2NFNO3oeQjVjdM612c7OG5GuVfxGtrIX1H5A2zvTA9tCVq/kZrd8k8hCS63lBqreJKpBhpGip9B3u/EQFa97O11zaB4HVsmMoHOLaQP0NCJ1VnwhVge9LZyVw2wvJe02BxYMJ4pNKaQZGIP0rUEDokUtgN9qog2lSXUhmMlqLYtyzba+v8jfYBLGqThgXIoXCBt1wZnzAhahqKJ5VKeqL/r8l2oe8sfxHJLDN0Q94oDQYykE95Cx+tFTf4WgXek/p3c4bUknl2/P3CvRvvnMRFbGKBwaoOFfpt+Ew== 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)(36840700001)(46966006)(26005)(6286002)(7696005)(55016002)(70206006)(336012)(7636003)(6916009)(107886003)(5660300002)(83380400001)(36860700001)(16526019)(4326008)(186003)(8676002)(6666004)(47076005)(82310400003)(86362001)(356005)(2906002)(426003)(1076003)(2616005)(316002)(8936002)(70586007)(508600001)(36756003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2021 12:34:24.3219 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dfc54d31-5e81-401e-7900-08d9a2b418e1 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: BN8NAM11FT004.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4173 Subject: [dpdk-dev] [PATCH V2 4/4] common/mlx5: fix RQ size configuration in QP create 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" The number of WQEBBs was provided to QP create, and QP size was calculated by multiplying the number of WQEBBs by 64, which is the send WQE size. When creating RQ in the QP (i.e., vdpa driver), the queue size was bigger because the receive WQE size is 16. Provide queue size to QP create instead of the number of WQEBBs. Fixes: f9213ab12cf9 ("common/mlx5: share DevX queue pair operations") Signed-off-by: Raja Zidane Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_devx.c | 9 ++++----- drivers/common/mlx5/mlx5_common_devx.h | 2 +- drivers/compress/mlx5/mlx5_compress.c | 5 +++-- drivers/crypto/mlx5/mlx5_crypto.c | 5 +++-- drivers/regex/mlx5/mlx5_regex_control.c | 4 ++-- drivers/vdpa/mlx5/mlx5_vdpa_event.c | 5 +++-- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common_devx.c b/drivers/common/mlx5/mlx5_common_devx.c index 5afe6f2b9c..5f53996b72 100644 --- a/drivers/common/mlx5/mlx5_common_devx.c +++ b/drivers/common/mlx5/mlx5_common_devx.c @@ -338,8 +338,8 @@ mlx5_devx_qp_destroy(struct mlx5_devx_qp *qp) * Context returned from mlx5 open_device() glue function. * @param[in/out] qp_obj * Pointer to QP to create. - * @param[in] log_wqbb_n - * Log of number of WQBBs in queue. + * @param[in] queue_size + * Size of queue to create. * @param[in] attr * Pointer to QP attributes structure. * @param[in] socket @@ -349,7 +349,7 @@ mlx5_devx_qp_destroy(struct mlx5_devx_qp *qp) * 0 on success, a negative errno value otherwise and rte_errno is set. */ int -mlx5_devx_qp_create(void *ctx, struct mlx5_devx_qp *qp_obj, uint32_t log_wqbb_n, +mlx5_devx_qp_create(void *ctx, struct mlx5_devx_qp *qp_obj, uint32_t queue_size, struct mlx5_devx_qp_attr *attr, int socket) { struct mlx5_devx_obj *qp = NULL; @@ -357,7 +357,6 @@ mlx5_devx_qp_create(void *ctx, struct mlx5_devx_qp *qp_obj, uint32_t log_wqbb_n, void *umem_buf = NULL; size_t alignment = MLX5_WQE_BUF_ALIGNMENT; uint32_t umem_size, umem_dbrec; - uint32_t num_of_wqbbs = RTE_BIT32(log_wqbb_n); int ret; if (alignment == (size_t)-1) { @@ -366,7 +365,7 @@ mlx5_devx_qp_create(void *ctx, struct mlx5_devx_qp *qp_obj, uint32_t log_wqbb_n, return -rte_errno; } /* Allocate memory buffer for WQEs and doorbell record. */ - umem_size = MLX5_WQE_SIZE * num_of_wqbbs; + umem_size = queue_size; umem_dbrec = RTE_ALIGN(umem_size, MLX5_DBR_SIZE); umem_size += MLX5_DBR_SIZE; umem_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, umem_size, diff --git a/drivers/common/mlx5/mlx5_common_devx.h b/drivers/common/mlx5/mlx5_common_devx.h index df92feebe2..12b0cb121f 100644 --- a/drivers/common/mlx5/mlx5_common_devx.h +++ b/drivers/common/mlx5/mlx5_common_devx.h @@ -89,7 +89,7 @@ void mlx5_devx_qp_destroy(struct mlx5_devx_qp *qp); __rte_internal int mlx5_devx_qp_create(void *ctx, struct mlx5_devx_qp *qp_obj, - uint32_t log_wqbb_n, + uint32_t queue_size, struct mlx5_devx_qp_attr *attr, int socket); __rte_internal diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index 7813af38e6..9d5893e790 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -248,8 +248,9 @@ mlx5_compress_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, 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; - ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp->qp, log_ops_n, &qp_attr, - socket_id); + ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp->qp, + qp_attr.num_of_send_wqbbs * + MLX5_WQE_SIZE, &qp_attr, socket_id); if (ret != 0) { DRV_LOG(ERR, "Failed to create QP."); goto err; diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index 55208a87eb..08bb26fb09 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.c +++ b/drivers/crypto/mlx5/mlx5_crypto.c @@ -629,8 +629,9 @@ mlx5_crypto_queue_pair_setup(struct rte_cryptodev *dev, uint16_t qp_id, attr.num_of_send_wqbbs = RTE_BIT32(log_wqbb_n); attr.ts_format = mlx5_ts_format_conv(priv->cdev->config.hca_attr.qp_ts_format); - ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp->qp_obj, log_wqbb_n, - &attr, socket_id); + ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp->qp_obj, + attr.num_of_send_wqbbs * MLX5_WQE_SIZE, + &attr, socket_id); if (ret) { DRV_LOG(ERR, "Failed to create QP."); goto error; diff --git a/drivers/regex/mlx5/mlx5_regex_control.c b/drivers/regex/mlx5/mlx5_regex_control.c index 46e400a93f..9d5b4bd174 100644 --- a/drivers/regex/mlx5/mlx5_regex_control.c +++ b/drivers/regex/mlx5/mlx5_regex_control.c @@ -154,8 +154,8 @@ regex_ctrl_create_hw_qp(struct mlx5_regex_priv *priv, struct mlx5_regex_qp *qp, log_nb_desc)); attr.mmo = priv->mmo_regex_qp_cap; ret = mlx5_devx_qp_create(priv->cdev->ctx, &qp_obj->qp_obj, - MLX5_REGEX_WQE_LOG_NUM(priv->has_umr, log_nb_desc), - &attr, SOCKET_ID_ANY); + attr.num_of_send_wqbbs * MLX5_WQE_SIZE, &attr, + SOCKET_ID_ANY); if (ret) { DRV_LOG(ERR, "Can't create QP object."); rte_errno = ENOMEM; diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c b/drivers/vdpa/mlx5/mlx5_vdpa_event.c index 657c39dae1..f8d910b33f 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c @@ -594,8 +594,9 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n, attr.num_of_send_wqbbs = 0; /* No need SQ. */ attr.ts_format = mlx5_ts_format_conv(priv->cdev->config.hca_attr.qp_ts_format); - ret = mlx5_devx_qp_create(priv->cdev->ctx, &(eqp->sw_qp), log_desc_n, - &attr, SOCKET_ID_ANY); + ret = mlx5_devx_qp_create(priv->cdev->ctx, &(eqp->sw_qp), + attr.num_of_receive_wqes * + MLX5_WSEG_SIZE, &attr, SOCKET_ID_ANY); if (ret) { DRV_LOG(ERR, "Failed to create SW QP(%u).", rte_errno); goto error; -- 2.17.1