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 CDEF44564F; Fri, 19 Jul 2024 12:04:47 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 591C842F65; Fri, 19 Jul 2024 12:02:43 +0200 (CEST) Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11013049.outbound.protection.outlook.com [52.101.67.49]) by mails.dpdk.org (Postfix) with ESMTP id D573442ED7 for ; Fri, 19 Jul 2024 12:02:23 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t2AxukvdrQ+osTEew6sXz1GypB21E8w/rybo5KU2JYXm8yzVBiHULaJjGKJVcHw870mcC3unvns+Gt3AN7irWvkJMFQez2mhgjXg+FRY5Dhr7GUzebyTNx7bcRk6Kwi6SdWBDvadOu4oXZAqr/m5723rd3ta04HOfQeWg6wgzeyV2Oz9xQhSgwYPGB3hsHFjkjfPR97+3uPCdldYbDrVcYw/uqGH+JBzaEzjro/MrrfssrT0YTfgl/wyP2noNHCoD0/ty07URWDeNtDRzw9Cy0B9BzQ6lxMCz8faVrdyaxwtaZuXWUvXdjQ/aHuBsCzGAbjS3dbpoi+ajlnbXxiHSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=EOq/NWLMNbSax0XR6bdW2kwYcYwF1F/SDe28s064oyw=; b=nIBH4ODpa+M7JBGnqm9eoGmSxgdrjZgras9ruTIpE1aaLV/65FUp000kAG9NVECO/COeAdevZFoDB82nKHCGYr+qEtNXG5qBQqzRCb4ufpszSrQFS/+1u4WAMBwcFdyjoSj1By4GFZsvgzstKgIJDrfIkIzF0an1bGco2TCjOZwv1OvdF+5CF+HeRS0O92D7+1OS4EsV2inmJqugIChyPz33qYv5QuKHZNhBApZBC7VyPvobhShgl08IRwXB1nqz3+/uZnJrxO200QrnsnIeSDKblNUOD7T1wGrX3Ww23QoFlruoYJWRPqt2oeNWmJOs3AUa2NMDQZpABXEM2SNINg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EOq/NWLMNbSax0XR6bdW2kwYcYwF1F/SDe28s064oyw=; b=eFC9NI3WyZ8bx+7ZVh7q05dl/IefRnp/55nyGhIYGJXkPi5fgJLtvjjRQoEtmiHfEJgl5XAKmvT3wdBS0xRCGtanOUyXfKuScZQefYNAdFnvCVmi4KU79JgUULIguxiQsPMJroKxMC8qw91F9Q8xn/qJcaD1p4en+ZtlFhE2oYA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8205.eurprd04.prod.outlook.com (2603:10a6:102:1c2::20) by AM0PR04MB7108.eurprd04.prod.outlook.com (2603:10a6:208:19e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20; Fri, 19 Jul 2024 10:02:22 +0000 Received: from PAXPR04MB8205.eurprd04.prod.outlook.com ([fe80::7633:884d:5973:174f]) by PAXPR04MB8205.eurprd04.prod.outlook.com ([fe80::7633:884d:5973:174f%6]) with mapi id 15.20.7784.016; Fri, 19 Jul 2024 10:02:22 +0000 From: Gagandeep Singh To: dev@dpdk.org, Sachin Saxena Cc: Jun Yang Subject: [PATCH 24/30] dma/dpaa: improve congestion handling Date: Fri, 19 Jul 2024 15:31:20 +0530 Message-Id: <20240719100126.1150373-24-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240719100126.1150373-1-g.singh@nxp.com> References: <20240719100126.1150373-1-g.singh@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR01CA0184.apcprd01.prod.exchangelabs.com (2603:1096:4:189::9) To PAXPR04MB8205.eurprd04.prod.outlook.com (2603:10a6:102:1c2::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8205:EE_|AM0PR04MB7108:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ec76fde-160f-43f3-daa0-08dca7d9e21a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gH/eGHS/G41XCMv/Z+zIhvzm4AtGczquR3tADwd5XJsRzBRwsWYXk588W0HU?= =?us-ascii?Q?hHG/RP66Pg1Ev1Q0zagaNmc9KGfxmhBBXU75AZfnO/dyVSiyqgP17fm7KSDZ?= =?us-ascii?Q?clvtyuQhAvEQfltlww++VXEPXymIojjxXP9OuKmwC3CxuEHwetcxgAN3OWWF?= =?us-ascii?Q?aZFDEoDzaxiZBcTVDARL884cnxBSLVm1DfEYp/CtEZAuqJShOPqJjGdZ83v6?= =?us-ascii?Q?mCCJp2ImhbPdhT7Ls6S9D+WzpeBf8DgdJKbCHZnQI606TgK2OrlAokzRsmTx?= =?us-ascii?Q?PvpniGBGnsfT5kXd0IEXB4F0n3j7lscuEZeOR1k7o48duLeN1jZ/uQGvRJhP?= =?us-ascii?Q?KwuYW/GRu9SDiY1YVn45rfk1Qy3xUap3CdGvfvydrBy72Zaqf7sIo0u4UFch?= =?us-ascii?Q?UOkVDMiE2m9d+LqUD+yhJsBcqoalkt5or/0y3Jb+aqBdIy9IRGOZV1/JmB5j?= =?us-ascii?Q?/nIn9Piw8p16Hyin9rwUtZGjoCa9L2V0SvBEm8xXt7gUGqLvs+O3Lz0SPh1A?= =?us-ascii?Q?1LIVLtsw9gqDQ5CJNPX6AHhG0ik7pVLeT4nvIpc13hlmDM/SBJUrRD3MEpfs?= =?us-ascii?Q?qFoOt84zWO2uzA8ktYsstiVSIlI9iRBGHYvoCBAW8ARWyZDSxwgiMM3K+Yca?= =?us-ascii?Q?DvtO3hYbEayEkR4hdaO5LeflHEbiaVfyiDRxJp99xEa7yfie+3xUs6gDiOKs?= =?us-ascii?Q?5GYq4L1sfP1MAq7vKTb6O3h7SkcOR8nWlDG4qR1zktu/hC6BsAeuGnZ1Lrs7?= =?us-ascii?Q?LrMmm98zT37hQ5cc1nCMqYd7K7RXPKjQPMGB5WUwTm3pOWIDYjiGctUhuV2L?= =?us-ascii?Q?uZa6v3fm4s2L7aZw9PBPP/lB9MX7bpnnuFEoOW5zlGaGTwTI+OO78yyZEzX7?= =?us-ascii?Q?YO83jgteQArcDNrvbpjLIJ86U9CkoKDyK3DBJEL2EWLwuuDj+B30NS8ORtBi?= =?us-ascii?Q?ViDnHAMocWjbPjQWf9XHzt2KGqces/N/HT5gEnmeaiFSUAATb7tU2RakzcsR?= =?us-ascii?Q?1CM/pBnjzGcy6f+EfrhyrBjlrGrS9f7077Yv9D5FpERb1QUbkDVoQWFsVzEB?= =?us-ascii?Q?8q47stxmEPsI9Wp6FwEP0C8IVp9sHZesNhXhc7vNexP8HSewP3w5kEILBcuR?= =?us-ascii?Q?CPNoPPYU+Sf0fxIj6MgQfmLLvl9oZVzA1XLw46WMH7ORCPZrjHgNAV0hnW7W?= =?us-ascii?Q?xIXGTE3qlVYO+ctzoTj9JIZVbLKCa/PB99lHcPPIFg01Vt1M+y1SlNzk0GS6?= =?us-ascii?Q?PedJfSs+rz/BF1uSOEBAeHL343F11Ki+FjNtrI9RL7ncbLMRt75tydnB1218?= =?us-ascii?Q?yIXhV6pvEMWI9FLJ2eqf+5kUx8SAjP42YBNDPRgBN91WDgNo58xfq+YwaFNf?= =?us-ascii?Q?nVTDY+eAgbo9OSz1edv2tR1oSXmXFk40HrbylSp8vop2kmfuRQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8205.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(52116014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?c64Y5L5ENBDb/k8t47xSrUtu4ZlXtYhozFY2WYVpHqhbohwvLYV2Q0o/vTB8?= =?us-ascii?Q?bDiRmX8WjQy33UpzGrtgyrmVGoMPzpJLJt9gMbQ7KQgMqNMR344Hr3T6b7P4?= =?us-ascii?Q?ZY1ox0yJnXLD59P9QKS6Be2e0+ICQLkyloKjUDNOYZfY1Fo0shoxE+AShxHd?= =?us-ascii?Q?S77ZlEKNdQQOmF5DYAEVeQLx3szNMQAZTwn4gBaslenKHMToI2rnDwVtwiMn?= =?us-ascii?Q?XjLNf9857rPhoU3H8Syhw7WIc5ipVjbVcE/w9/T8Hpq0rnMp3+bcbINEVpCG?= =?us-ascii?Q?NCvkUKR8RuvXv4QRkVdR4qJYEmAJ3t52eRsGvUTouK8PeMyIY4f3cX/Ehjqn?= =?us-ascii?Q?a3JaECva2ic/mNV5QAJLPAooZSm/M3CHMqXxk9diEscJVV69agWaDAOm4tNN?= =?us-ascii?Q?GmOmYmCHsn4AxHcoN1fMkiLGOiG01t7M/Z30i693BhKv7iGmo53GmPjEX65r?= =?us-ascii?Q?/G5yzl68E5oBGPiYaqMDNcQQWxw9v0caf+d5MY4eU5GtJUKGZ0E37JS/7yDV?= =?us-ascii?Q?w2lF7j7kl8QNsil9XwV3D0E5Rf5WNvidm4SZoDj0D6xmu3d/9/FHD7mQP95s?= =?us-ascii?Q?qdf1pEtKDJ+2BLZ2ePN+s7SKTvwuO36h9drqdvCvh2NJmgeksHJgm6MwR6r2?= =?us-ascii?Q?ZLM+ULg4nr9ZQ1UziSGPbwBiMtERFJDQRmOdURkV88dqoM5fWTx7FSfi1aHO?= =?us-ascii?Q?xFsjigxZy/DhB6qiJc95eTzAVuIp8bQx+bISS76u+ZSqwMedFzQrRWDE3ESD?= =?us-ascii?Q?5O08Owp1CvUveTxCKU+R0BVUk0xMVcmSDfiHRDtDSjax0iPMckKHxZ60Wtf2?= =?us-ascii?Q?JOMwn08+yj2FbYG0WknVdrmIO0N3kJEEjfk/wXD4wnr7FVWa6wdPfQd6+Lyz?= =?us-ascii?Q?e5dioYJRYsosYalNLGARzoFSIFUKeVEd6QqRfv8+ahyrKdkZSVc0ap6KWTsZ?= =?us-ascii?Q?tuTk8utp0wP7K4ZDC+9Op8Rnf2O0OmBogpJe0KIfbIHmlxBQ4Cw/qPp4sdjX?= =?us-ascii?Q?t6Hsv17XE7TotNxZj/v1ifsICe0iOg1sm7Fg010RcX2+XO3AzaSp2UrU4h5l?= =?us-ascii?Q?a7do6tng9krRp89ucHXeZaB7jFIgK5J5WDr0ERcr4jzAChhv8u+o+d0XUsEq?= =?us-ascii?Q?7pmySSP0nE04cx2FPlbWMX1R9jaz+TMR1nAWurKKqktpG12apTvbM0r8o0uz?= =?us-ascii?Q?R3+5yT5AgQ0zCqKI77TwaiknSbu5yCazFfDfdUn7bmcADyG4/cfuh8y12lCB?= =?us-ascii?Q?jAcf7FfVCESgrQ1Hkdvgc1t3UcHjTllBuiSM37sk/7rTbam6rnc70xwOjNCs?= =?us-ascii?Q?oVE0zjCB5hUJzNu/yWF0HUkhI692vqgJd4vU0PbjVUCCOpgK+5naPzaR8t4t?= =?us-ascii?Q?Fi2sqM/C3jH0lUKw+i/7RSUbrt9JQZkQKo+RNTqomLIKu6KwJ1ZsUL6xQTmf?= =?us-ascii?Q?z35thNTE9Ty08yLY4pNt75GrmZMmodk2nXc0q4JSPgodaWJjOmLkCJ5Xav/Y?= =?us-ascii?Q?1Ki5lmtQdd+q2Ak6ZxXh1Fuhgpb6pH+IForCpECWsz98fSXTtnAClcHlVqVg?= =?us-ascii?Q?yKhk4bqZ1846qWmb8P7mTrkr3tu3dBRg+VhXgpEQ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ec76fde-160f-43f3-daa0-08dca7d9e21a X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8205.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2024 10:02:22.4429 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mPqnqYSMRCeLbYpJN52iNtdJPvPYzbcc7nK5F4NDBUSpTJQe/WEpL+62k9j8H809 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB7108 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 From: Jun Yang The congestion issue occurs frequently on low speed device(PCIe). We should drain the command queue to make dma work when congestion occurs. Signed-off-by: Jun Yang --- drivers/dma/dpaa/dpaa_qdma.c | 157 +++++++++++++++++++---------------- 1 file changed, 85 insertions(+), 72 deletions(-) diff --git a/drivers/dma/dpaa/dpaa_qdma.c b/drivers/dma/dpaa/dpaa_qdma.c index 32d8a5b2be..93199cf9a3 100644 --- a/drivers/dma/dpaa/dpaa_qdma.c +++ b/drivers/dma/dpaa/dpaa_qdma.c @@ -535,73 +535,6 @@ fsl_qdma_reg_init(struct fsl_qdma_engine *fsl_qdma) return 0; } -static int -fsl_qdma_enqueue_desc_to_ring(struct fsl_qdma_queue *fsl_queue, - int is_burst) -{ - uint16_t i, num = fsl_queue->pending_num, idx, start; - int ret; - - num = is_burst ? fsl_queue->pending_num : 1; - - fsl_queue->desc_in_hw[fsl_queue->ci] = num; - ret = rte_ring_enqueue(fsl_queue->complete_burst, - &fsl_queue->desc_in_hw[fsl_queue->ci]); - if (ret) { - DPAA_QDMA_ERR("%s: Queue is full, try dequeue first", - __func__); - DPAA_QDMA_ERR("%s: submitted:%"PRIu64", completed:%"PRIu64"", - __func__, fsl_queue->stats.submitted, - fsl_queue->stats.completed); - return ret; - } - start = fsl_queue->pending_start; - for (i = 0; i < num; i++) { - idx = (start + i) & (fsl_queue->pending_max - 1); - ret = rte_ring_enqueue(fsl_queue->complete_desc, - &fsl_queue->pending_desc[idx]); - if (ret) { - DPAA_QDMA_ERR("Descriptors eq failed!\r\n"); - return ret; - } - } - - return 0; -} - -static int -fsl_qdma_enqueue_desc_single(struct fsl_qdma_queue *fsl_queue, - dma_addr_t dst, dma_addr_t src, size_t len) -{ - uint8_t *block = fsl_queue->block_vir; - struct fsl_qdma_comp_sg_desc *csgf_src, *csgf_dest; - struct fsl_qdma_cmpd_ft *ft; - int ret; - - ft = fsl_queue->ft[fsl_queue->ci]; - csgf_src = &ft->desc_sbuf; - csgf_dest = &ft->desc_dbuf; - qdma_desc_sge_addr_set64(csgf_src, src); - csgf_src->length = len; - csgf_src->extion = 0; - qdma_desc_sge_addr_set64(csgf_dest, dst); - csgf_dest->length = len; - csgf_dest->extion = 0; - /* This entry is the last entry. */ - csgf_dest->final = 1; - - ret = fsl_qdma_enqueue_desc_to_ring(fsl_queue, 0); - if (ret) - return ret; - fsl_queue->ci = (fsl_queue->ci + 1) & (fsl_queue->n_cq - 1); - - qdma_writel(fsl_queue->le_cqmr | FSL_QDMA_BCQMR_EI, - block + FSL_QDMA_BCQMR(fsl_queue->queue_id)); - fsl_queue->stats.submitted++; - - return 0; -} - static uint16_t dpaa_qdma_block_dequeue(struct fsl_qdma_engine *fsl_qdma, uint8_t block_id) @@ -633,7 +566,6 @@ dpaa_qdma_block_dequeue(struct fsl_qdma_engine *fsl_qdma, ret = qdma_ccdf_get_queue(&cq[start], &qid); if (ret == true) { cmd_queue = &fsl_qdma->cmd_queues[block_id][qid]; - cmd_queue->stats.completed++; ret = rte_ring_dequeue(cmd_queue->complete_burst, (void **)&dq_complete); @@ -677,6 +609,87 @@ dpaa_qdma_block_dequeue(struct fsl_qdma_engine *fsl_qdma, return count; } +static int +fsl_qdma_enqueue_desc_to_ring(struct fsl_qdma_queue *fsl_queue, + int is_burst) +{ + uint16_t i, num = fsl_queue->pending_num, idx, start, dq; + int ret, dq_cnt; + + num = is_burst ? fsl_queue->pending_num : 1; + + fsl_queue->desc_in_hw[fsl_queue->ci] = num; +eq_again: + ret = rte_ring_enqueue(fsl_queue->complete_burst, + &fsl_queue->desc_in_hw[fsl_queue->ci]); + if (ret) { + DPAA_QDMA_DP_DEBUG("%s: Queue is full, try dequeue first", + __func__); + DPAA_QDMA_DP_DEBUG("%s: submitted:%"PRIu64", completed:%"PRIu64"", + __func__, fsl_queue->stats.submitted, + fsl_queue->stats.completed); + dq_cnt = 0; +dq_again: + dq = dpaa_qdma_block_dequeue(fsl_queue->engine, + fsl_queue->block_id); + dq_cnt++; + if (dq > 0) { + goto eq_again; + } else { + if (dq_cnt < 100) + goto dq_again; + DPAA_QDMA_ERR("%s: Dq block%d failed!", + __func__, fsl_queue->block_id); + } + return ret; + } + start = fsl_queue->pending_start; + for (i = 0; i < num; i++) { + idx = (start + i) & (fsl_queue->pending_max - 1); + ret = rte_ring_enqueue(fsl_queue->complete_desc, + &fsl_queue->pending_desc[idx]); + if (ret) { + DPAA_QDMA_ERR("Descriptors eq failed!\r\n"); + return ret; + } + } + + return 0; +} + +static int +fsl_qdma_enqueue_desc_single(struct fsl_qdma_queue *fsl_queue, + dma_addr_t dst, dma_addr_t src, size_t len) +{ + uint8_t *block = fsl_queue->block_vir; + struct fsl_qdma_comp_sg_desc *csgf_src, *csgf_dest; + struct fsl_qdma_cmpd_ft *ft; + int ret; + + ft = fsl_queue->ft[fsl_queue->ci]; + csgf_src = &ft->desc_sbuf; + csgf_dest = &ft->desc_dbuf; + qdma_desc_sge_addr_set64(csgf_src, src); + csgf_src->length = len; + csgf_src->extion = 0; + qdma_desc_sge_addr_set64(csgf_dest, dst); + csgf_dest->length = len; + csgf_dest->extion = 0; + /* This entry is the last entry. */ + csgf_dest->final = 1; + + ret = fsl_qdma_enqueue_desc_to_ring(fsl_queue, 0); + if (ret) + return ret; + fsl_queue->ci = (fsl_queue->ci + 1) & (fsl_queue->n_cq - 1); + + qdma_writel(fsl_queue->le_cqmr | FSL_QDMA_BCQMR_EI, + block + FSL_QDMA_BCQMR(fsl_queue->queue_id)); + fsl_queue->stats.submitted++; + + return 0; +} + static int fsl_qdma_enqueue_overflow(struct fsl_qdma_queue *fsl_queue) { @@ -702,7 +715,7 @@ fsl_qdma_enqueue_overflow(struct fsl_qdma_queue *fsl_queue) if (likely(!overflow)) return 0; - DPAA_QDMA_ERR("TC%d/Q%d submitted(%"PRIu64")-completed(%"PRIu64") >= %d", + DPAA_QDMA_DP_DEBUG("TC%d/Q%d submitted(%"PRIu64")-completed(%"PRIu64") >= %d", fsl_queue->block_id, fsl_queue->queue_id, st->submitted, st->completed, QDMA_QUEUE_CR_WM); drain_num = 0; @@ -712,7 +725,7 @@ fsl_qdma_enqueue_overflow(struct fsl_qdma_queue *fsl_queue) fsl_queue->block_id); if (!blk_drain) { drain_num++; - if (drain_num > 100) { + if (drain_num > 1000) { DPAA_QDMA_ERR("TC%d failed drain, Q%d's %"PRIu64" bd in HW.", fsl_queue->block_id, fsl_queue->queue_id, st->submitted - st->completed); @@ -721,8 +734,8 @@ fsl_qdma_enqueue_overflow(struct fsl_qdma_queue *fsl_queue) goto drain_again; } check_num++; - if (check_num > 10) { - DPAA_QDMA_ERR("TC%d failed drain, Q%d's %"PRIu64" bd in HW.", + if (check_num > 1000) { + DPAA_QDMA_ERR("TC%d failed check, Q%d's %"PRIu64" bd in HW.", fsl_queue->block_id, fsl_queue->queue_id, st->submitted - st->completed); return -ENOSPC; -- 2.25.1