From patchwork Wed Dec 27 03:55:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 32760 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F1B651B2DE; Wed, 27 Dec 2017 04:56:09 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0059.outbound.protection.outlook.com [104.47.0.59]) by dpdk.org (Postfix) with ESMTP id AD5431B2D8 for ; Wed, 27 Dec 2017 04:56:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=teJrqhVcY+MNOhFCrwjBWvMHnxhDPAGmOp76BnzaqsM=; b=xeC/GzyCYy1PM1YdS4aA/IMDS0yndrGHswOgmlU4I5iQw5uS7+avOar73n/81HlB4ZgBU2u4+m04IwD+7sDi4awA7qFkMc+VWwJ0gwwOM5ScKVHtGEZNLyFFbFS4WO3TXOZyny1a8XhUNCh+2Qo+Q06TkNcHjO9ExGQYD6xEKvU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by HE1PR0501MB2043.eurprd05.prod.outlook.com (2603:10a6:3:35::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.345.14; Wed, 27 Dec 2017 03:56:05 +0000 From: Yongseok Koh To: adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Cc: dev@dpdk.org, Yongseok Koh Date: Tue, 26 Dec 2017 19:55:45 -0800 Message-Id: <20171227035547.29571-3-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171227035547.29571-1-yskoh@mellanox.com> References: <20171227035547.29571-1-yskoh@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: CY4PR1701CA0007.namprd17.prod.outlook.com (2603:10b6:910:5e::17) To HE1PR0501MB2043.eurprd05.prod.outlook.com (2603:10a6:3:35::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 78a7401a-c2b3-4203-f26b-08d54cddc1ab X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(48565401081)(2017052603307)(7153060); SRVR:HE1PR0501MB2043; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 3:hAiB5jwXx4lEKUBJJ0GEegjS/cn967dbF4RMjFigt1rCKmKjnL9HumktpH/nRUh9gluCpjtYrAZjgqvhQfbxsjTj2Wc84gAcjeaqt6Gq9daBvHH92PtlxXWXRzNxRSsXi8LthgnZVuUFXwOktgZhcPk/guoGO2BULI1FJb2YIQUyS5qNY9AYPfTa84j/scWyDwLsLzhugHqF3deiK/hX1GVaxUeP7xxLXyRGbAcX2C0Rm/Fdg2uuT61PKwZhqum6; 25:+35cD1bJV50UDFg/5FqQFQf2h2u3Xh85QvMts7WQbCXayrQuAnKKlb27jJHpQio18nzgbUnj1ZbPURF15LJfdHKYAMAhsejy+Vzmy3+MS515hT7flYa4y9G6T28x83QOldbmjgD5HnDg6ffQUeWnS0X4vFjcWqGbEbBSts5owhXQY4Ka30Ug3HmhQO/m5MsXXG/0Xfd2H87lPM7MTDNIX+fnyPeuF20Fe1JKiCz4BU5ZDZEPAwdoIYH5+8p/kc8yfeyzAgkeGoeXV/9tFEf/vlLVrjW/YoEvCVSzXYogeOndFh+umd+gannEQCZr6Uah8XiHHgABzpayRrtEpLhgAA==; 31:RQbWB7QOOvbkocvsEvp4A7khCUZRW7EOe3jq99GqstNsvpprf8QZXtM0xU+BXhi8imOId33N83sKv+3NFxjyeg5PKOlj5NbseNPQSFOQTIf7MZFgReoCM24EPx3c5QdnBFomHJb10+d/Hq3D5zXZ0uY48S+Nc2S7Rn2nDSkPeaTDtTMsd8pbg44vbmi8vE+IColMxleaE7c6j0bPbwx2UBs+Th2lFK3781oJG0Sz5jA= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2043: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 20:4E3LDZyd4rtyi6ZZg7q2ZLzautnCXVcBjEAEloMKrAzh4ifP90QaB+YsC3pBp5pDNvf9V/6eFuBw816cl4hP9zbHbL/WcvlG9OR+vqWzWTZf0iScDva2QSuBVoEOE+hc/ubbcmjQJ/A+QXgm5tQYjz4hlzTGKXfgSStsbMJ1DvAP6rh/dZfoI14980g7PEpbpSC/oVuVDp2NKEDHC2s7sK7OiKgPHwGTUmOA5emNAowibLevbTCs2nbH5bqgPxbjG0wd77lmadGvPBjVJRLRb0VpQQuOSZ7i4JBFONiUhjOeumohRrV5cngorP9sgjHo0te72y1hIzuoCoKx30n7fpQI2BHXgI0GYiMUbj4T3CABfQTw78GRNneD/7ckdMsZiecoRF8nhlmrcwQk7eW74Na1nJM0h15VwlfuPeeuRal9I4Q9ZvU9ANdaqNJXxL9LVbl3r7RIJfF//4GiFU14Bbvk1myzZ9/ud2xIurqljTqUFLQvIflkko2OE8il5zPg; 4:7zPkT2qRt3aLFSI+t6FDXKPyvElUAgBqFuBTwm2+PQNjPNjzrVFYbNBIIOH2Euc7N9R1QIupmYZYLIvgdm6V2c8caOD3cv4ZAOT7kTMXX85+2yThBeei1s8WrtJ6J0LCbeHVAo5w3njFTo2KVFi2nBtpS61oaIeAknNwS1Uw9h1uwo0h7vSYMBE4SC7YcVqLMKHLIh7oC+zAwSfElKSz8eOjGn/FgogKT+U2EzqeZdzQCIV7qx3X2fkkQ9P8BsW0rdhF1xKnNHXdaP5DbzCKzQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231023)(944501075)(93006095)(93001095)(6055026)(6041268)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:HE1PR0501MB2043; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HE1PR0501MB2043; X-Forefront-PRVS: 0534947130 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(396003)(376002)(346002)(39860400002)(199004)(189003)(66066001)(97736004)(316002)(107886003)(5660300001)(25786009)(3846002)(478600001)(16526018)(105586002)(16586007)(53936002)(106356001)(81166006)(81156014)(8676002)(8936002)(50226002)(68736007)(86362001)(575784001)(4326008)(2906002)(36756003)(55016002)(21086003)(386003)(59450400001)(7696005)(1076002)(51416003)(76176011)(6116002)(47776003)(7736002)(2950100002)(6666003)(305945005)(52116002)(69596002)(50466002)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2043; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2043; 23:RoL9lBkdUIJf6mipicoMDXF7W7C4dKclBNOggCA?= rdwJNLR1amMA9J5yVySPFYCatQYv2brV3FoXAFIVYgiXfhfHpqsqzOFoDhhOewTCWb/uKFETD/xbR3j2FflEsVHEwZ6xI+6SqFhNbGlInlcisAOreGyH/6NdyUFB/2+mzwwegVxcdYAkVmQWsEOjYfwcQgyCbsxNac9pEjYTnY5hd/oJ6FYMRyC4YMmzv8XHl/CwGXG+9d0FiVBhheOTIuDiHqiffv13u9fcHvb7iSjUZk3dCC2iZ4lMOyj0RFslFPFlRN1SpDY3nBC+YljKNTGpQEMAPpmHmGTDBrrWLzrZlsJXfuAcEp81cuy3TY1RVGObJrXtH9zj0RidbtTQhvwQ/9D1J59Q0WQiKViglAWfyvWTHJqY3IW+9bi0V03a8USf4imq/69GBPJH1FBLDS6FMXd+DKwJMUDKOfSHJda9p6FzXqgvaq1rXR6I+5e6tvGYOXlFaNwmP4yP1QVq1rpitCfh4ImZqTwkopXNHuHQ8cuxxCKC/Gm7EaetHmjm9IW3I2b0HC8RYOHmGDpSWCyvJKZQrm4ExV4JURzD/gJGLxKi171qGydhYjVT2lSaJIGl55D+DdwsOuMFu4DcH8Gvh/EjbM1GnbJ3xdWucKVT1EX7AMK88NOC6StUsnTTYWnS7RHbnpLLb7MwoBiSZtgOfE9hbVw6J9kNBca0FLQ/qB+lmOfmB5jXJ+YOLasjIy4UBWmmOqNjWCn0n7dkMe0UaYd/cpGVygnA0pfKAnk4ZyAzYAPspvs7fBYkXH2bfookOI4UQtgwwjoVMifSFZlujNeJv9c96KaE6WOSkO/p59wvEIJN4nbiUCANZmlWZgu7BKAHHLQ3hpELZ65seKuFClAIEXcCVccj/99KTbRAEU8lgN3d4t8DjZBC4z8cg5QhRDkTkZ6S9/hFJp6tmcqvDA3WkSlV6213l4ur6bAiXffwDC3S/L9F+79BD4lNiLUylH/N7My65WaKC4MWOb45OEnh0pO6Uh/4DO3CijMba7udonLxi+3PHsSz0Lk+Xxt27Pa8zcT0cR9qvtQnZ/T00CZfSqOIyJWie18HZsgPu2yJsI2KwBy/UKHULDtOmQUx7kxI/tTK/QMHR4bgqyecJ+nvmq8466GCYXOHWbQ/F3w== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 6:KKCozuv1ymqgxb0v/kHaFDbG2JmjTuQ3TT7/wKWgeM5o2PmNcfEgi45qeVlCoKSywsZ1uq0ixKH1MZRARopXzoPXDFSm6PsoCivRcUMQP6TkYDG+iKwTBZtbnRDlR3I3f0ABH0soe8quy2mbbLWwutwVwCtkKJEokgOabMkEThAaaC5G8qhLY4CuENpg3S0VzK5vZMIz+fTSRx+t1fMJtoExJ1kypCvmwfyq4YCohE2/y9bkOU083XT6CgGRFIQZVDBOtj7MG5na6HwArcCbULaYsAlV4TI3u5rVmsjvm3gcwiQiuRToUJ2d9MpSSQdsnMoBruEYrVrtQYYfoeVnZODSRhOLUiHQA+hTbXGs4WA=; 5:7sNu8OT90qUtitXfJgtUzK4QzWRYA4M/6atg6OF+BT4DVVkkzk4E3VynCRGx6MIZIkUAUB/WZAeYJLHkUDLFSigI+ziAJliU06XsGURWic6ShxcJrb//+HO+dPTP19RVzYuo+BCqG8F8320zjTnL2CxuGJGbKN4DWyTx80Hazfo=; 24:RiPX45Wsi5+kaYprDcKpMK/lfcfBluXiGfIcItK7LEC0xFN1kPwRPpRY02zljRrDpNZmQx6K1T/jEGZfTRL9swBGTcQK3gEBNdyMovAKDko=; 7:rwg3xnNIymAvA6mXFHGXTBrBKo6EcN92xMHM5UVMwCsdF1SiCdRNmDVJ6g5puHAk2Ml6N4k9HLcXUFUy/iFmGmqtbNkLdszcjiQiv6pAdSS1hWzo4K1ZHvajNKS99mi2oVvTGYoDxyJiotfGseaa3Z+FqKxfIjjuxAMZZY0vo0e22/YhV0GJxc506wz7uNPtR2jRrDUCnM7GR2YpPVpcbVq0z5WXRPtVGj5GCs7ruhP13WL8h5/CZgSH2e+bLt1O SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2017 03:56:05.2297 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 78a7401a-c2b3-4203-f26b-08d54cddc1ab X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2043 Subject: [dpdk-dev] [PATCH 3/5] net/mlx5: add missing sanity checks for Tx completion queue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Yongseok Koh --- drivers/net/mlx5/mlx5_rxtx.c | 19 ++++++++++++++++++- drivers/net/mlx5/mlx5_rxtx.h | 2 ++ drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 8 ++++++++ drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 8 ++++++++ drivers/net/mlx5/mlx5_txq.c | 2 ++ 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 5e58f1afd..7c9d18270 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -357,6 +357,8 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) /* Start processing. */ mlx5_tx_complete(txq); max_elts = (elts_n - (elts_head - txq->elts_tail)); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); max_wqe = (1u << txq->wqe_n) - (txq->wqe_ci - txq->wqe_pi); if (unlikely(!max_wqe)) return 0; @@ -700,6 +702,9 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) /* Save elts_head in unused "immediate" field of WQE. */ last_wqe->ctrl3 = txq->elts_head; txq->elts_comp = 0; +#ifndef NDEBUG + ++txq->cq_pi; +#endif } else { txq->elts_comp = comp; } @@ -818,6 +823,8 @@ mlx5_tx_burst_mpw(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) /* Start processing. */ mlx5_tx_complete(txq); max_elts = (elts_n - (elts_head - txq->elts_tail)); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); max_wqe = (1u << txq->wqe_n) - (txq->wqe_ci - txq->wqe_pi); if (unlikely(!max_wqe)) return 0; @@ -911,6 +918,9 @@ mlx5_tx_burst_mpw(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) /* Save elts_head in unused "immediate" field of WQE. */ wqe->ctrl[3] = elts_head; txq->elts_comp = 0; +#ifndef NDEBUG + ++txq->cq_pi; +#endif } else { txq->elts_comp = comp; } @@ -1042,6 +1052,8 @@ mlx5_tx_burst_mpw_inline(void *dpdk_txq, struct rte_mbuf **pkts, /* Start processing. */ mlx5_tx_complete(txq); max_elts = (elts_n - (elts_head - txq->elts_tail)); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); do { struct rte_mbuf *buf = *(pkts++); uintptr_t addr; @@ -1203,6 +1215,9 @@ mlx5_tx_burst_mpw_inline(void *dpdk_txq, struct rte_mbuf **pkts, /* Save elts_head in unused "immediate" field of WQE. */ wqe->ctrl[3] = elts_head; txq->elts_comp = 0; +#ifndef NDEBUG + ++txq->cq_pi; +#endif } else { txq->elts_comp = comp; } @@ -1549,7 +1564,9 @@ mlx5_tx_burst_empw(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) wqe->ctrl[3] = elts_head; txq->elts_comp = 0; txq->mpw_comp = txq->wqe_ci; - txq->cq_pi++; +#ifndef NDEBUG + ++txq->cq_pi; +#endif } else { txq->elts_comp += j; } diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h index b783ca203..c072169f2 100644 --- a/drivers/net/mlx5/mlx5_rxtx.h +++ b/drivers/net/mlx5/mlx5_rxtx.h @@ -185,7 +185,9 @@ struct mlx5_txq_data { uint16_t elts_comp; /* Counter since last completion request. */ uint16_t mpw_comp; /* WQ index since last completion request. */ uint16_t cq_ci; /* Consumer index for completion queue. */ +#ifndef NDEBUG uint16_t cq_pi; /* Producer index for completion queue. */ +#endif uint16_t wqe_ci; /* Consumer index for work queue. */ uint16_t wqe_pi; /* Producer index for work queue. */ uint16_t elts_n:4; /* (*elts)[] length (in log2). */ diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h index 77ce0c3e0..661fbf11c 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h +++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h @@ -135,6 +135,8 @@ txq_scatter_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, assert(elts_n > pkts_n); mlx5_tx_complete(txq); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); if (unlikely(!pkts_n)) return 0; for (n = 0; n < pkts_n; ++n) { @@ -205,7 +207,9 @@ txq_scatter_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, wqe->ctrl[2] = rte_cpu_to_be_32(8); wqe->ctrl[3] = txq->elts_head; txq->elts_comp = 0; +#ifndef NDEBUG ++txq->cq_pi; +#endif } #ifdef MLX5_PMD_SOFT_COUNTERS txq->stats.opackets += n; @@ -269,6 +273,8 @@ txq_burst_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, uint16_t pkts_n, assert(elts_n > pkts_n); mlx5_tx_complete(txq); max_elts = (elts_n - (elts_head - txq->elts_tail)); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); max_wqe = (1u << txq->wqe_n) - (txq->wqe_ci - txq->wqe_pi); pkts_n = RTE_MIN((unsigned int)RTE_MIN(pkts_n, max_wqe), max_elts); if (unlikely(!pkts_n)) @@ -306,7 +312,9 @@ txq_burst_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, uint16_t pkts_n, } else { /* Request a completion. */ txq->elts_comp = 0; +#ifndef NDEBUG ++txq->cq_pi; +#endif comp_req = 8; } /* Fill CTRL in the header. */ diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h index f25681184..2b0e62861 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h +++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h @@ -135,6 +135,8 @@ txq_scatter_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, assert(elts_n > pkts_n); mlx5_tx_complete(txq); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); if (unlikely(!pkts_n)) return 0; for (n = 0; n < pkts_n; ++n) { @@ -206,7 +208,9 @@ txq_scatter_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, wqe->ctrl[2] = rte_cpu_to_be_32(8); wqe->ctrl[3] = txq->elts_head; txq->elts_comp = 0; +#ifndef NDEBUG ++txq->cq_pi; +#endif } #ifdef MLX5_PMD_SOFT_COUNTERS txq->stats.opackets += n; @@ -268,6 +272,8 @@ txq_burst_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, uint16_t pkts_n, assert(elts_n > pkts_n); mlx5_tx_complete(txq); max_elts = (elts_n - (elts_head - txq->elts_tail)); + /* A CQE slot must always be available. */ + assert((1u << txq->cqe_n) - (txq->cq_pi - txq->cq_ci)); max_wqe = (1u << txq->wqe_n) - (txq->wqe_ci - txq->wqe_pi); pkts_n = RTE_MIN((unsigned int)RTE_MIN(pkts_n, max_wqe), max_elts); assert(pkts_n <= MLX5_DSEG_MAX - nb_dword_in_hdr); @@ -307,7 +313,9 @@ txq_burst_v(struct mlx5_txq_data *txq, struct rte_mbuf **pkts, uint16_t pkts_n, } else { /* Request a completion. */ txq->elts_comp = 0; +#ifndef NDEBUG ++txq->cq_pi; +#endif comp_req = 8; } /* Fill CTRL in the header. */ diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index a786a6b63..89b16fda2 100644 --- a/drivers/net/mlx5/mlx5_txq.c +++ b/drivers/net/mlx5/mlx5_txq.c @@ -418,7 +418,9 @@ mlx5_priv_txq_ibv_new(struct priv *priv, uint16_t idx) (volatile struct mlx5_cqe (*)[]) (uintptr_t)cq_info.buf; txq_data->cq_ci = 0; +#ifndef NDEBUG txq_data->cq_pi = 0; +#endif txq_data->wqe_ci = 0; txq_data->wqe_pi = 0; txq_ibv->qp = tmpl.qp;