From patchwork Thu Mar 2 20:21:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124738 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 C027141DB8; Thu, 2 Mar 2023 21:22:04 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE6DF40EE7; Thu, 2 Mar 2023 21:21:59 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id C179B400D6; Thu, 2 Mar 2023 21:21:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788518; x=1709324518; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nc9+0wMElD5XQmTIXCiEaPXjOS0pn+yhBlgpkbVASkk=; b=FfVn2BdTPLVz3cQGEzHnXRHIWT09M8ly5d743XHb8XHR736/B6Fjnhsm sBeL056/6OHWyPXKnMiNq4W7Wl9vm0E5zF1VdJKl5ZcccMd/HrC2lcxrO hZgJv/z+VzjtOpvTRppL/eq2YlTeWCRNN1gHavoZXZcaS780aPAz3D7gx gnQ0YkBFh0QF/QAYwqdWxViIqqFZ+ti2ULiV+/pCD7i0B6HmG7jYlETT/ 9Dbkh62WjagRZPRi6fUh85+BYRna1fzwag9htkHE/OlgPkamnGlHaHheX X7rBub9ePuschYNyFYbQn5hXAuBGNT1Ii5js7n7dEuvFa470rqwCuHhL1 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871144" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871144" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:21:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398083" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398083" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:55 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas , stable@dpdk.org Subject: [PATCH v3 01/17] test/bbdev: fix seg fault for non supported HARQ len Date: Thu, 2 Mar 2023 12:21:55 -0800 Message-Id: <20230302202211.170017-2-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Fix segmentation fault happening in corner case in test-bbdev. This fault could happen when running some specific vectors which size are not supported by the PMD. Fixes: 335c11fd276 ("app/bbdev: support HARQ validation") Cc: stable@dpdk.org Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 45e1780df772..027f32cbf1b7 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -84,7 +84,7 @@ /* Increment for next code block in external HARQ memory */ #define HARQ_INCR 32768 /* Headroom for filler LLRs insertion in HARQ buffer */ -#define FILLER_HEADROOM 1024 +#define FILLER_HEADROOM 2048 /* Constants from K0 computation from 3GPP 38.212 Table 5.4.2.1-2 */ #define N_ZC_1 66 /* N = 66 Zc for BG 1 */ #define N_ZC_2 50 /* N = 50 Zc for BG 2 */ @@ -2111,9 +2111,9 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op, ops_ld->n_filler; if (data_len > deRmOutSize) data_len = deRmOutSize; - if (data_len > orig_op->segments[i].length) - data_len = orig_op->segments[i].length; } + if (data_len > orig_op->segments[i].length) + data_len = orig_op->segments[i].length; /* * HARQ output can have minor differences * due to integer representation and related scaling From patchwork Thu Mar 2 20:21:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124739 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 11CE441DB8; Thu, 2 Mar 2023 21:22:13 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C05D642BB1; Thu, 2 Mar 2023 21:22:00 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 1AD9340E09; Thu, 2 Mar 2023 21:21:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788518; x=1709324518; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=II7xXLlMMX2x2WsdGVAIWdk0LHDbh4X9DYMJtrddyt8=; b=Mtq5OBQO6Upz8CumcyBSxo8qrUEoMMGWwUC2yF5gCpgDLcRCjWWm9aWK Up5qTfu/xSJ6+CubkW/8Ls8cSCj7PXZ5gAWJSd8I3Ih/cj2RSEXz/0o6m M9jjWvvQMjxvbhulyj987R08TiLUdQw8uI9sKkAysMpRcyqzr4URFvEPm WCXEdAUZ+sM6GjvngXJ12Sv+9F5zxVFXnMiEQPvFzzOJ0EEqWaKE57d0/ Ix9uzt7gk4RCRmyVoKfCtFyrU8PhLlCeysA2hnTpey8lQ/713Ay4yb72I itAYegSXhsSnvK0ePJ4sLprPFNovWb/Jj57XaFE/FMb7yDyGFlNMIp0dd A==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871152" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871152" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:21:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398089" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398089" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:56 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas , stable@dpdk.org Subject: [PATCH v3 02/17] test/bbdev: extend HARQ tolerance Date: Thu, 2 Mar 2023 12:21:56 -0800 Message-Id: <20230302202211.170017-3-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 HARQ memory implementation could have different size assumptions. Extending HARQ tolerance to cover different implementations. Fixes: 335c11fd276 ("app/bbdev: support HARQ validation") Cc: stable@dpdk.org Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 027f32cbf1b7..74e7e1394092 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -95,6 +95,7 @@ #define K0_3_1 56 /* K0 fraction numerator for rv 3 and BG 1 */ #define K0_3_2 43 /* K0 fraction numerator for rv 3 and BG 2 */ +#define HARQ_MEM_TOLERANCE 256 static struct test_bbdev_vector test_vector; /* Switch between PMD and Interrupt for throughput TC */ @@ -2090,13 +2091,17 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op, uint16_t data_len = rte_pktmbuf_data_len(m) - offset; total_data_size += orig_op->segments[i].length; - TEST_ASSERT(orig_op->segments[i].length < - (uint32_t)(data_len + 64), + TEST_ASSERT(orig_op->segments[i].length < (uint32_t)(data_len + HARQ_MEM_TOLERANCE), "Length of segment differ in original (%u) and filled (%u) op", orig_op->segments[i].length, data_len); harq_orig = (int8_t *) orig_op->segments[i].addr; harq_out = rte_pktmbuf_mtod_offset(m, int8_t *, offset); + /* Cannot compare HARQ output data for such cases */ + if ((ldpc_llr_decimals > 1) && ((ops_ld->op_flags & RTE_BBDEV_LDPC_LLR_COMPRESSION) + || (ops_ld->op_flags & RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION))) + break; + if (!(ldpc_cap_flags & RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS ) || (ops_ld->op_flags & @@ -2172,7 +2177,7 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op, /* Validate total mbuf pkt length */ uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset; - TEST_ASSERT(total_data_size < pkt_len + 64, + TEST_ASSERT(total_data_size < pkt_len + HARQ_MEM_TOLERANCE, "Length of data differ in original (%u) and filled (%u) op", total_data_size, pkt_len); From patchwork Thu Mar 2 20:21:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124741 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 2FAE941DB8; Thu, 2 Mar 2023 21:22:28 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3DA6E42D16; Thu, 2 Mar 2023 21:22:03 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id B01CF40EE7; Thu, 2 Mar 2023 21:21:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788519; x=1709324519; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KUc//m8KF1tq+Jfv9th0WwkiIMjwQ1CKLYbIprV2Ymc=; b=b+6pW1NkQW06IO0e1Gjq4jGOiiEHmbS/g/zgD5bMBy56K78rLBfrL0Cu Bs+upyfXzoF69v77+fZTczRWSfWoU12E9A8iEjaLSMSaj173WhnjwtgT+ XOYJXAFjb3Eep8Z6PEgLg5Pf/K5BW8GKnAIsQxMAAADCrSrqEpcmv/u+t qVj/yG3eSlXQjFtdL5jV9Q57U++YXHJdOb6ofZZjYz0RlLyQQu5YDI2VV mJSFceZejTYP9ewM2KfP75RMcmgDxBUKSu1x3/GHfdF8wxAf6iD2X794N fojYEusKFkM16+5WquZK5kgcrm6emjIvh8SIpkkEoSHshzQy150+zdTH1 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871162" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871162" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:21:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398098" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398098" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:57 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas , stable@dpdk.org Subject: [PATCH v3 03/17] test/bbdev: remove check for invalid opaque data Date: Thu, 2 Mar 2023 12:21:57 -0800 Message-Id: <20230302202211.170017-4-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Assert also if the opaque data is invalid. Fixes: 335c11fd276 ("app/bbdev: support HARQ validation") Cc: stable@dpdk.org Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 74e7e1394092..95d63a3548f5 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -78,7 +78,6 @@ #define SYNC_WAIT 0 #define SYNC_START 1 -#define INVALID_OPAQUE -1 #define INVALID_QUEUE_ID -1 /* Increment for next code block in external HARQ memory */ @@ -1951,10 +1950,9 @@ check_enc_status_and_ordering(struct rte_bbdev_enc_op *op, "op_status (%d) != expected_status (%d)", op->status, expected_status); - if (op->opaque_data != (void *)(uintptr_t)INVALID_OPAQUE) - TEST_ASSERT((void *)(uintptr_t)order_idx == op->opaque_data, - "Ordering error, expected %p, got %p", - (void *)(uintptr_t)order_idx, op->opaque_data); + TEST_ASSERT((void *)(uintptr_t)order_idx == op->opaque_data, + "Ordering error, expected %p, got %p", + (void *)(uintptr_t)order_idx, op->opaque_data); return TEST_SUCCESS; } From patchwork Thu Mar 2 20:21:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124740 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 CCF5641DB8; Thu, 2 Mar 2023 21:22:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F0E6A42C76; Thu, 2 Mar 2023 21:22:01 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id D4ACA40E09 for ; Thu, 2 Mar 2023 21:21:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788519; x=1709324519; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dac8twLNerpVmMeps9xe8anEh1Na8IaTTfwv9W5u+Gw=; b=VgkWETKvXSJ8vxqKDyXtrXOOdmXVTW0pFGvP7b+KnwFZ8pAbzmG+c7Ya bpPK2S21eFclnOsTn1KRihqdQ2ze+aGq5VFRjnuchAMhC1S82rGlqtyyB nSpkevV+nNCUgDUYLf8MJjgjKGzCBGSfkkvSS+bkPtnY6WeDpxr/Fi3nJ rwv4gOFD1P7hpexsmHiKxHMRcGN3WOwtuXaAJCGqiVEbWfvkrJzy9y8Fx 2Is7eFkur2V4bwjSb8eJk4wWpJJHDpJ1zJZzazwztEgMzLwtdS91FR5oQ P2okbcL3X8+Hr+B4McTKbeqcTzUXfyf1KFpupOI/LAfUnN3RBEXm0ussW g==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871166" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871166" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:21:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398102" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398102" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:57 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 04/17] test/bbdev: refactor TB throughput report Date: Thu, 2 Mar 2023 12:21:58 -0800 Message-Id: <20230302202211.170017-5-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Refactor calculation for tb_size. No functional impact. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 38 ++++++++++++++------------------ 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 95d63a3548f5..088fc055a148 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -2578,19 +2578,16 @@ calc_dec_TB_size(struct rte_bbdev_dec_op *op) static uint32_t calc_ldpc_dec_TB_size(struct rte_bbdev_dec_op *op) { - uint8_t i; - uint32_t c, r, tb_size = 0; + uint8_t num_cbs = 0; + uint32_t tb_size = 0; uint16_t sys_cols = (op->ldpc_dec.basegraph == 1) ? 22 : 10; - if (op->ldpc_dec.code_block_mode == RTE_BBDEV_CODE_BLOCK) { - tb_size = sys_cols * op->ldpc_dec.z_c - op->ldpc_dec.n_filler; - } else { - c = op->ldpc_dec.tb_params.c; - r = op->ldpc_dec.tb_params.r; - for (i = 0; i < c-r; i++) - tb_size += sys_cols * op->ldpc_dec.z_c - - op->ldpc_dec.n_filler; - } + if (op->ldpc_dec.code_block_mode == RTE_BBDEV_CODE_BLOCK) + num_cbs = 1; + else + num_cbs = op->ldpc_dec.tb_params.c - op->ldpc_dec.tb_params.r; + + tb_size = (sys_cols * op->ldpc_dec.z_c - op->ldpc_dec.n_filler) * num_cbs; return tb_size; } @@ -2616,19 +2613,16 @@ calc_enc_TB_size(struct rte_bbdev_enc_op *op) static uint32_t calc_ldpc_enc_TB_size(struct rte_bbdev_enc_op *op) { - uint8_t i; - uint32_t c, r, tb_size = 0; + uint8_t num_cbs = 0; + uint32_t tb_size = 0; uint16_t sys_cols = (op->ldpc_enc.basegraph == 1) ? 22 : 10; - if (op->ldpc_enc.code_block_mode == RTE_BBDEV_CODE_BLOCK) { - tb_size = sys_cols * op->ldpc_enc.z_c - op->ldpc_enc.n_filler; - } else { - c = op->turbo_enc.tb_params.c; - r = op->turbo_enc.tb_params.r; - for (i = 0; i < c-r; i++) - tb_size += sys_cols * op->ldpc_enc.z_c - - op->ldpc_enc.n_filler; - } + if (op->ldpc_enc.code_block_mode == RTE_BBDEV_CODE_BLOCK) + num_cbs = 1; + else + num_cbs = op->ldpc_enc.tb_params.c - op->ldpc_enc.tb_params.r; + + tb_size = (sys_cols * op->ldpc_enc.z_c - op->ldpc_enc.n_filler) * num_cbs; return tb_size; } From patchwork Thu Mar 2 20:21:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124742 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 2AE6941DB8; Thu, 2 Mar 2023 21:22:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 58F0442BFE; Thu, 2 Mar 2023 21:22:04 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 80F2640E09 for ; Thu, 2 Mar 2023 21:21:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788519; x=1709324519; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qcSkWQyXmk4eqfvGn8rQEt/phgukVzSPCPWhv5qVfwc=; b=iGs9LX9BL4zgBQ9u97sDTEFBqKYWQeB2sCUpovLYO5W/LcxvwbPwhU4v Oym+ejgOmBZGdQ2muhFeFWajNkGGvX/5KDdp/UG4pBXNepL3jbxNqlTn8 iTrTGFVcwJrdz9kZuKmcTefIJaMExvKmeF0Ix4MgXpnYfzbEFVX36WoQY nW3PHLsge/egbKnisBkUJyHe1RdwrumWXaHVsnPXTREN2iBxOhXDucP/x sYlbmvr6M3GmdxLpco4j+YrWjdpQxPMcUaQQ2WFYEkxqK8ql1zNZxE1JB JoZqXnzgH2hp1ELKfaS3o5/xAMgwzyPVpm/1vshDrAEnYRLvFM5LDSAc8 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871172" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871172" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:21:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398106" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398106" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:58 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 05/17] test/bbdev: add timeout for latency tests Date: Thu, 2 Mar 2023 12:21:59 -0800 Message-Id: <20230302202211.170017-6-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 a timeout to force exit the latency tests in case dequeue never happens. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 088fc055a148..4de3d937a53d 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -26,6 +26,7 @@ #define MAX_QUEUES RTE_MAX_LCORE #define TEST_REPETITIONS 100 +#define TIME_OUT_POLL 1e8 #define WAIT_OFFLOAD_US 1000 #ifdef RTE_BASEBAND_FPGA_LTE_FEC @@ -4544,6 +4545,7 @@ latency_test_ldpc_dec(struct rte_mempool *mempool, for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) { uint16_t enq = 0, deq = 0; + uint32_t time_out = 0; bool first_time = true; last_time = 0; @@ -4595,7 +4597,8 @@ latency_test_ldpc_dec(struct rte_mempool *mempool, last_time = rte_rdtsc_precise() - start_time; first_time = false; } - } while (unlikely(burst_sz != deq)); + time_out++; + } while ((burst_sz != deq) && (time_out < TIME_OUT_POLL)); *max_time = RTE_MAX(*max_time, last_time); *min_time = RTE_MIN(*min_time, last_time); @@ -4604,7 +4607,12 @@ latency_test_ldpc_dec(struct rte_mempool *mempool, if (extDdr) retrieve_harq_ddr(dev_id, queue_id, ops_enq, burst_sz); - if (test_vector.op_type != RTE_BBDEV_OP_NONE) { + if (burst_sz != deq) { + struct rte_bbdev_info info; + ret = TEST_FAILED; + rte_bbdev_info_get(dev_id, &info); + TEST_ASSERT_SUCCESS(ret, "Dequeue timeout!"); + } else if (test_vector.op_type != RTE_BBDEV_OP_NONE) { ret = validate_ldpc_dec_op(ops_deq, burst_sz, ref_op, vector_mask); TEST_ASSERT_SUCCESS(ret, "Validation failed!"); @@ -4630,6 +4638,7 @@ latency_test_enc(struct rte_mempool *mempool, for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) { uint16_t enq = 0, deq = 0; + uint32_t time_out = 0; bool first_time = true; last_time = 0; @@ -4665,13 +4674,18 @@ latency_test_enc(struct rte_mempool *mempool, last_time += rte_rdtsc_precise() - start_time; first_time = false; } - } while (unlikely(burst_sz != deq)); + time_out++; + } while ((burst_sz != deq) && (time_out < TIME_OUT_POLL)); *max_time = RTE_MAX(*max_time, last_time); *min_time = RTE_MIN(*min_time, last_time); *total_time += last_time; - - if (test_vector.op_type != RTE_BBDEV_OP_NONE) { + if (burst_sz != deq) { + struct rte_bbdev_info info; + ret = TEST_FAILED; + rte_bbdev_info_get(dev_id, &info); + TEST_ASSERT_SUCCESS(ret, "Dequeue timeout!"); + } else if (test_vector.op_type != RTE_BBDEV_OP_NONE) { ret = validate_enc_op(ops_deq, burst_sz, ref_op); TEST_ASSERT_SUCCESS(ret, "Validation failed!"); } From patchwork Thu Mar 2 20:22:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124743 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 713BE41DB8; Thu, 2 Mar 2023 21:22:44 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CED7C42D37; Thu, 2 Mar 2023 21:22:05 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id AD02742B8B for ; Thu, 2 Mar 2023 21:22:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788520; x=1709324520; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2hwIDTaDFpJFllJ2kG1dO8q530Mgcw/990sSV7dl/O4=; b=a/VmKVQ7k3GDCdpu8yX+DBI8gwrWAP0SzZo+80//UsO6dZfVbiQHKwt6 WyUiESFAymsh3bCmyv8blbJIn/DMOAD8hWf4SICyceP19gHuMIaT97Q5u scfChdWnWQLyboA+ufa3vfI8QH1P4zK/y0oBudwSrW1/QcR/fZH8oILNW NNb3JZ4glVeuHvGNohyTcAdpmHQQjzsiRmugSpTPTiO6tYH2e93qRfVom Rdnrgd4Zt3MX7IV6U20TeOrnaIndNvBNTWU1I9MtU8KVb81DJBufClZ03 uhhg5QIw47X0z79POtvdPdYPb5WAv5U7ZZXdiiL+pYe6AbyfecsX0g3Mm A==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871177" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871177" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:21:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398109" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398109" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:59 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 06/17] test/bbdev: enable early termination for validation Date: Thu, 2 Mar 2023 12:22:00 -0800 Message-Id: <20230302202211.170017-7-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Enhancement to enable early termination for validation tests if the device supports it. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 4de3d937a53d..396473961ad1 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -3773,11 +3773,11 @@ throughput_pmd_lcore_ldpc_dec(void *arg) TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops); /* For throughput tests we need to disable early termination */ - if (check_bit(ref_op->ldpc_dec.op_flags, - RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE)) - ref_op->ldpc_dec.op_flags -= - RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE; + if (check_bit(ref_op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE)) + ref_op->ldpc_dec.op_flags -= RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE; + ref_op->ldpc_dec.iter_max = get_iter_max(); + /* Since ET is disabled, the expected iter_count is iter_max */ ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max; if (test_vector.op_type != RTE_BBDEV_OP_NONE) @@ -4463,7 +4463,7 @@ latency_test_dec(struct rte_mempool *mempool, struct test_buffers *bufs, struct rte_bbdev_dec_op *ref_op, int vector_mask, uint16_t dev_id, uint16_t queue_id, const uint16_t num_to_process, uint16_t burst_sz, - uint64_t *total_time, uint64_t *min_time, uint64_t *max_time) + uint64_t *total_time, uint64_t *min_time, uint64_t *max_time, bool disable_et) { int ret = TEST_SUCCESS; uint16_t i, j, dequeued; @@ -4479,8 +4479,14 @@ latency_test_dec(struct rte_mempool *mempool, burst_sz = num_to_process - dequeued; ret = rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz); - TEST_ASSERT_SUCCESS(ret, - "rte_bbdev_dec_op_alloc_bulk() failed"); + TEST_ASSERT_SUCCESS(ret, "rte_bbdev_dec_op_alloc_bulk() failed"); + + ref_op->turbo_dec.iter_max = get_iter_max(); + /* For validation tests we want to enable early termination */ + if (!disable_et && !check_bit(ref_op->turbo_dec.op_flags, + RTE_BBDEV_TURBO_EARLY_TERMINATION)) + ref_op->turbo_dec.op_flags |= RTE_BBDEV_TURBO_EARLY_TERMINATION; + if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_dec_op(ops_enq, burst_sz, dequeued, bufs->inputs, @@ -4559,10 +4565,12 @@ latency_test_ldpc_dec(struct rte_mempool *mempool, /* For latency tests we need to disable early termination */ if (disable_et && check_bit(ref_op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE)) - ref_op->ldpc_dec.op_flags -= - RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE; + ref_op->ldpc_dec.op_flags -= RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE; + ref_op->ldpc_dec.iter_max = get_iter_max(); - ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max; + /* When ET is disabled, the expected iter_count is iter_max */ + if (disable_et) + ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max; if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_ldpc_dec_op(ops_enq, burst_sz, dequeued, @@ -4871,7 +4879,7 @@ validation_latency_test(struct active_device *ad, iter = latency_test_dec(op_params->mp, bufs, op_params->ref_dec_op, op_params->vector_mask, ad->dev_id, queue_id, num_to_process, - burst_sz, &total_time, &min_time, &max_time); + burst_sz, &total_time, &min_time, &max_time, latency_flag); else if (op_type == RTE_BBDEV_OP_LDPC_ENC) iter = latency_test_ldpc_enc(op_params->mp, bufs, op_params->ref_enc_op, ad->dev_id, queue_id, From patchwork Thu Mar 2 20:22:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124744 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 78A5341DB8; Thu, 2 Mar 2023 21:22:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E79E642D33; Thu, 2 Mar 2023 21:22:06 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 1ED05427F5 for ; Thu, 2 Mar 2023 21:22:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788521; x=1709324521; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IAhyb48OzLWFCbeJTTkE2+becF+pE8cyfdPJWugxQDk=; b=WfHLjos9rLNLkzU0yyK+I+WdDUyWOVgzbfFM+avb1VuwtPvB3mIaqaXa 7L/DPyXdyyrnL3P6kzHPSpWKnrg64OMtWTucz4DsR93cVtKiWQOlNCKZh PndQXwHv6IoKU7ysBGrzQQiewMld+on0Cl2/iD+IN3ic9uLzPxgSHk4yP isbJpcBeV2SzP8GW5tyog7xyEj7u8CyJjrDRlWIvc+EomIKajLkFXn/Fd REe9Q+D32vFcbKkSACUgU7b4I33Bgbv+mbKDBib3RTf7QmooFr8LjHwoK ahRFD9gE650UUJLDoEUEKbqso+zMGo5eP8mjEjtc/CkvtC8hqKaQqXSaL g==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871180" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871180" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398112" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398112" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:21:59 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 07/17] test/bbdev: report device status in test-bbdev Date: Thu, 2 Mar 2023 12:22:01 -0800 Message-Id: <20230302202211.170017-8-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 No functional impact. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 396473961ad1..546fc195aac4 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -849,6 +849,8 @@ add_bbdev_dev(uint8_t dev_id, struct rte_bbdev_info *info, #endif /* Let's refresh this now this is configured */ rte_bbdev_info_get(dev_id, info); + if (info->drv.device_status == RTE_BBDEV_DEV_FATAL_ERR) + printf("Device Status %s\n", rte_bbdev_device_status_str(info->drv.device_status)); nb_queues = RTE_MIN(rte_lcore_count(), info->drv.max_num_queues); nb_queues = RTE_MIN(nb_queues, (unsigned int) MAX_QUEUES); From patchwork Thu Mar 2 20:22:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124745 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 3A1EE41DB8; Thu, 2 Mar 2023 21:22:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 260EA42D3F; Thu, 2 Mar 2023 21:22:08 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 8D5DC42BD9 for ; Thu, 2 Mar 2023 21:22:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788521; x=1709324521; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Vzx4xDhDZN9pFO0E5XHtfIoHp/pmokabtw71fQzFU7g=; b=H+TRt1wq3JX5zoSeC2aWQ6SxKPdRjpUmueHaWC+KjiR6FQrMhHV7gOKf P58Q3GByoQ2//aJ+/MoOAXj6SULUJ3HxDKA0iY4+sm0KpWN7K47NsqwQ2 lhBIiiHQ7WAKlonSkgtdK/pLdSKheu2wBDJiUcKfWBswxpJX5hDzM9+WX vzX8h6b3wiB2p7VAoNjVriPtZOQbrZvxFYC1zQ5T0Ja1x2AGcm9xgC2+1 72U8Y2rw9IF2pX/Mnhv77Y8/aQ0bbm4Vx1DxDv3oONwUiQrc1yBe1fK5t mlAJ3kfbvgV07TdjlxyD/+fLIudbZ6+7OYpGQYY4R3CUfkio1pPlSiQvI g==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871189" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871189" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398115" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398115" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:00 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 08/17] test/bbdev: test start/stop bbdev API Date: Thu, 2 Mar 2023 12:22:02 -0800 Message-Id: <20230302202211.170017-9-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 a call to queue start and queue stop specifically for testing the bbdev API. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 546fc195aac4..7bfc4cd5779e 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -886,19 +886,23 @@ add_bbdev_dev(uint8_t dev_id, struct rte_bbdev_info *info, "Allocated all queues (id=%u) at prio%u on dev%u\n", queue_id, qconf.priority, dev_id); qconf.priority++; - ret = rte_bbdev_queue_configure(ad->dev_id, queue_id, - &qconf); + ret = rte_bbdev_queue_configure(ad->dev_id, queue_id, &qconf); } if (ret != 0) { - printf("All queues on dev %u allocated: %u\n", - dev_id, queue_id); + printf("All queues on dev %u allocated: %u\n", dev_id, queue_id); + break; + } + ret = rte_bbdev_queue_start(ad->dev_id, queue_id); + if (ret != 0) { + printf("Failed to start queue on dev %u q_id: %u\n", dev_id, queue_id); break; } ad->queue_ids[queue_id] = queue_id; } TEST_ASSERT(queue_id != 0, - "ERROR Failed to configure any queues on dev %u", - dev_id); + "ERROR Failed to configure any queues on dev %u\n" + "\tthe device may not support the related operation capability\n" + "\tor the device may not have been configured yet", dev_id); ad->nb_queues = queue_id; set_avail_op(ad, op_type); @@ -3844,6 +3848,9 @@ throughput_pmd_lcore_ldpc_dec(void *arg) TEST_ASSERT_SUCCESS(ret, "Validation failed!"); } + ret = rte_bbdev_queue_stop(tp->dev_id, queue_id); + if (ret != 0) + printf("Failed to stop queue on dev %u q_id: %u\n", tp->dev_id, queue_id); rte_bbdev_dec_op_free_bulk(ops_enq, num_ops); double tb_len_bits = calc_ldpc_dec_TB_size(ref_op); From patchwork Thu Mar 2 20:22:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124746 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 2582741DB8; Thu, 2 Mar 2023 21:23:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 381C842D3A; Thu, 2 Mar 2023 21:22:09 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 51C3A42D1A for ; Thu, 2 Mar 2023 21:22:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788523; x=1709324523; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sfMWY+PrH2Nt32jm1wJ6vXs+HyvwZYAONVwxMRkkGyU=; b=Bm4Mo4xevmTQX5E7T5x0pDmXNszBC7wUyLaup7ttcNa6uZOGvfgP8pF+ z8BLvQOeYzhB+DNLIQBqwm2p8fxooXTj1GIWIfsE5CD0BNhlXox/eYHfw DKljJ+m0DRS8n9EtTq4BHG8rlQSLnbPc8w75HrKyGNT2M/XyHgnso7DIZ BCj82HE+HOcSUv7cJNnvyXN8TNb+8S0Eem7LP454h/9ql6GFRmHgRJMxS XOMU3z9rMsZkS5rJfdBFOr81oJk/7GgEJIX6zrv9bchZJdcDs9DHRBmbZ S11K4Tg5pWB6PpaNI6gL77n6u0KeqeOCL9jcOrG5EhkVNRAdemVEMlzNV Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871200" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871200" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398118" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398118" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:01 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 09/17] test/bbdev: add timeout for enq/deq loops Date: Thu, 2 Mar 2023 12:22:03 -0800 Message-Id: <20230302202211.170017-10-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Added timeout to prevent infinite loop condition if the device doesn't enqueue/dequeue. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 133 ++++++++++++++++++++++++++----- 1 file changed, 113 insertions(+), 20 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 7bfc4cd5779e..7a4841a069ee 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -192,6 +192,15 @@ struct test_time_stats { typedef int (test_case_function)(struct active_device *ad, struct test_op_params *op_params); +/* Get device status before timeout exit */ +static inline void +timeout_exit(uint8_t dev_id) +{ + struct rte_bbdev_info info; + rte_bbdev_info_get(dev_id, &info); + printf("Device Status %s\n", rte_bbdev_device_status_str(info.drv.device_status)); +} + static inline void mbuf_reset(struct rte_mbuf *m) { @@ -3553,7 +3562,7 @@ throughput_pmd_lcore_dec(void *arg) ops_enq[j]->opaque_data = (void *)(uintptr_t)j; for (i = 0; i < TEST_REPETITIONS; ++i) { - + uint32_t time_out = 0; for (j = 0; j < num_ops; ++j) mbuf_reset(ops_enq[j]->turbo_dec.hard_output.data); if (so_enable) @@ -3573,12 +3582,23 @@ throughput_pmd_lcore_dec(void *arg) deq += rte_bbdev_dequeue_dec_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } } /* dequeue the remaining */ + time_out = 0; while (deq < enq) { deq += rte_bbdev_dequeue_dec_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } total_time += rte_rdtsc_precise() - start_time; @@ -3669,6 +3689,7 @@ bler_pmd_lcore_ldpc_dec(void *arg) ops_enq[j]->opaque_data = (void *)(uintptr_t)j; for (i = 0; i < 1; ++i) { /* Could add more iterations */ + uint32_t time_out = 0; for (j = 0; j < num_ops; ++j) { if (!loopback) mbuf_reset( @@ -3692,12 +3713,23 @@ bler_pmd_lcore_ldpc_dec(void *arg) deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } } /* dequeue the remaining */ + time_out = 0; while (deq < enq) { deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } total_time += rte_rdtsc_precise() - start_time; @@ -3796,6 +3828,7 @@ throughput_pmd_lcore_ldpc_dec(void *arg) ops_enq[j]->opaque_data = (void *)(uintptr_t)j; for (i = 0; i < TEST_REPETITIONS; ++i) { + uint32_t time_out = 0; for (j = 0; j < num_ops; ++j) { if (!loopback) mbuf_reset( @@ -3820,12 +3853,23 @@ throughput_pmd_lcore_ldpc_dec(void *arg) deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } } /* dequeue the remaining */ + time_out = 0; while (deq < enq) { deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } total_time += rte_rdtsc_precise() - start_time; @@ -3907,7 +3951,7 @@ throughput_pmd_lcore_enc(void *arg) ops_enq[j]->opaque_data = (void *)(uintptr_t)j; for (i = 0; i < TEST_REPETITIONS; ++i) { - + uint32_t time_out = 0; if (test_vector.op_type != RTE_BBDEV_OP_NONE) for (j = 0; j < num_ops; ++j) mbuf_reset(ops_enq[j]->turbo_enc.output.data); @@ -3925,12 +3969,23 @@ throughput_pmd_lcore_enc(void *arg) deq += rte_bbdev_dequeue_enc_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } } /* dequeue the remaining */ + time_out = 0; while (deq < enq) { deq += rte_bbdev_dequeue_enc_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } total_time += rte_rdtsc_precise() - start_time; @@ -3997,7 +4052,7 @@ throughput_pmd_lcore_ldpc_enc(void *arg) ops_enq[j]->opaque_data = (void *)(uintptr_t)j; for (i = 0; i < TEST_REPETITIONS; ++i) { - + uint32_t time_out = 0; if (test_vector.op_type != RTE_BBDEV_OP_NONE) for (j = 0; j < num_ops; ++j) mbuf_reset(ops_enq[j]->turbo_enc.output.data); @@ -4015,12 +4070,23 @@ throughput_pmd_lcore_ldpc_enc(void *arg) deq += rte_bbdev_dequeue_ldpc_enc_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } } /* dequeue the remaining */ + time_out = 0; while (deq < enq) { deq += rte_bbdev_dequeue_ldpc_enc_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } total_time += rte_rdtsc_precise() - start_time; @@ -4086,7 +4152,7 @@ throughput_pmd_lcore_fft(void *arg) ops_enq[j]->opaque_data = (void *)(uintptr_t)j; for (i = 0; i < TEST_REPETITIONS; ++i) { - + uint32_t time_out = 0; for (j = 0; j < num_ops; ++j) mbuf_reset(ops_enq[j]->fft.base_output.data); @@ -4103,12 +4169,23 @@ throughput_pmd_lcore_fft(void *arg) deq += rte_bbdev_dequeue_fft_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } } /* dequeue the remaining */ + time_out = 0; while (deq < enq) { deq += rte_bbdev_dequeue_fft_ops(tp->dev_id, queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } total_time += rte_rdtsc_precise() - start_time; @@ -4481,6 +4558,7 @@ latency_test_dec(struct rte_mempool *mempool, for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) { uint16_t enq = 0, deq = 0; + uint32_t time_out = 0; bool first_time = true; last_time = 0; @@ -4523,6 +4601,11 @@ latency_test_dec(struct rte_mempool *mempool, last_time = rte_rdtsc_precise() - start_time; first_time = false; } + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } while (unlikely(burst_sz != deq)); *max_time = RTE_MAX(*max_time, last_time); @@ -4615,7 +4698,11 @@ latency_test_ldpc_dec(struct rte_mempool *mempool, first_time = false; } time_out++; - } while ((burst_sz != deq) && (time_out < TIME_OUT_POLL)); + if (time_out >= TIME_OUT_POLL) { + timeout_exit(dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } + } while (unlikely(burst_sz != deq)); *max_time = RTE_MAX(*max_time, last_time); *min_time = RTE_MIN(*min_time, last_time); @@ -4624,14 +4711,8 @@ latency_test_ldpc_dec(struct rte_mempool *mempool, if (extDdr) retrieve_harq_ddr(dev_id, queue_id, ops_enq, burst_sz); - if (burst_sz != deq) { - struct rte_bbdev_info info; - ret = TEST_FAILED; - rte_bbdev_info_get(dev_id, &info); - TEST_ASSERT_SUCCESS(ret, "Dequeue timeout!"); - } else if (test_vector.op_type != RTE_BBDEV_OP_NONE) { - ret = validate_ldpc_dec_op(ops_deq, burst_sz, ref_op, - vector_mask); + if (test_vector.op_type != RTE_BBDEV_OP_NONE) { + ret = validate_ldpc_dec_op(ops_deq, burst_sz, ref_op, vector_mask); TEST_ASSERT_SUCCESS(ret, "Validation failed!"); } @@ -4692,17 +4773,17 @@ latency_test_enc(struct rte_mempool *mempool, first_time = false; } time_out++; - } while ((burst_sz != deq) && (time_out < TIME_OUT_POLL)); + if (time_out >= TIME_OUT_POLL) { + timeout_exit(dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } + } while (unlikely(burst_sz != deq)); *max_time = RTE_MAX(*max_time, last_time); *min_time = RTE_MIN(*min_time, last_time); *total_time += last_time; - if (burst_sz != deq) { - struct rte_bbdev_info info; - ret = TEST_FAILED; - rte_bbdev_info_get(dev_id, &info); - TEST_ASSERT_SUCCESS(ret, "Dequeue timeout!"); - } else if (test_vector.op_type != RTE_BBDEV_OP_NONE) { + + if (test_vector.op_type != RTE_BBDEV_OP_NONE) { ret = validate_enc_op(ops_deq, burst_sz, ref_op); TEST_ASSERT_SUCCESS(ret, "Validation failed!"); } @@ -4728,6 +4809,7 @@ latency_test_ldpc_enc(struct rte_mempool *mempool, for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) { uint16_t enq = 0, deq = 0; + uint32_t time_out = 0; bool first_time = true; last_time = 0; @@ -4763,6 +4845,11 @@ latency_test_ldpc_enc(struct rte_mempool *mempool, last_time += rte_rdtsc_precise() - start_time; first_time = false; } + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } while (unlikely(burst_sz != deq)); *max_time = RTE_MAX(*max_time, last_time); @@ -4796,6 +4883,7 @@ latency_test_fft(struct rte_mempool *mempool, for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) { uint16_t enq = 0, deq = 0; + uint32_t time_out = 0; bool first_time = true; last_time = 0; @@ -4831,6 +4919,11 @@ latency_test_fft(struct rte_mempool *mempool, last_time += rte_rdtsc_precise() - start_time; first_time = false; } + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } } while (unlikely(burst_sz != deq)); *max_time = RTE_MAX(*max_time, last_time); From patchwork Thu Mar 2 20:22:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124748 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 38E6041DB8; Thu, 2 Mar 2023 21:23:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D2F1C42D3E; Thu, 2 Mar 2023 21:22:11 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 8479042D0C for ; Thu, 2 Mar 2023 21:22:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788524; x=1709324524; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2j4s1YUda3uA/tm3K7+GRQ46Om+xa1ftNyDImylGt9o=; b=IKCvAphUSewlUruyzSw2Ty4PtUtYb+y1hKX0jyVCCQsuvdSvO7FKo0fI 5ueeOeYPSVQIfV6G7q4XUccA4IN7zeHi+jNq/lZqZ0R+thwq3nDjvEzhU dzGNqpr+sDfg/BET9nIZXG0H5hDS/KvFZSH+3ezdMiPYqhzHa93434PXM W+XzedSsKb0yeupEyW16O35SBdrDaAAvMa48Vsb6ptMr0HZ0erTNrUhkF FWZaEbc3I6rBKGUUKCsTZUbgFkkPc/N+aiS9zjoDvH++2iTxVppVJNV4D /l0O/nLss3PmssvN35hUn0ua0RR+FSj2fnk/idK8tsrd3zwspWO4Ge970 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871207" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871207" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398121" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398121" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:02 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 10/17] test/bbdev: add support for BLER for 4G Date: Thu, 2 Mar 2023 12:22:04 -0800 Message-Id: <20230302202211.170017-11-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 New feature to add BLER support for 4G in test-bbdev. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 195 ++++++++++++++++++++++++++++++- 1 file changed, 194 insertions(+), 1 deletion(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 7a4841a069ee..bd8310ac2c56 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -1768,6 +1768,30 @@ gen_qm2_llr(int8_t *llrs, uint32_t j, double N0, double llr_max) llrs[j] = (int8_t) b; } +/* Simple LLR generation assuming AWGN and QPSK */ +static void +gen_turbo_llr(int8_t *llrs, uint32_t j, double N0, double llr_max) +{ + double b, b1, n; + double coeff = 2.0 * sqrt(N0); + + /* Ignore in vectors null LLRs not to be saturated */ + if (llrs[j] == 0) + return; + + /* Note don't change sign here */ + n = randn(j % 2); + b1 = ((llrs[j] > 0 ? 2.0 : -2.0) + + coeff * n) / N0; + b = b1 * (1 << 4); + b = round(b); + if (b > llr_max) + b = llr_max; + if (b < -llr_max) + b = -llr_max; + llrs[j] = (int8_t) b; +} + /* Generate LLR for a given SNR */ static void generate_llr_input(uint16_t n, struct rte_bbdev_op_data *inputs, @@ -1803,6 +1827,27 @@ generate_llr_input(uint16_t n, struct rte_bbdev_op_data *inputs, } } +/* Generate LLR for turbo decoder for a given SNR */ +static void +generate_turbo_llr_input(uint16_t n, struct rte_bbdev_op_data *inputs, + struct rte_bbdev_dec_op *ref_op) +{ + struct rte_mbuf *m; + uint32_t i, j, range; + double N0, llr_max; + + llr_max = 127; + range = ref_op->turbo_dec.input.length; + N0 = 1.0 / pow(10.0, get_snr() / 10.0); + + for (i = 0; i < n; ++i) { + m = inputs[i].data; + int8_t *llrs = rte_pktmbuf_mtod_offset(m, int8_t *, 0); + for (j = 0; j < range; ++j) + gen_turbo_llr(llrs, j, N0, llr_max); + } +} + static void copy_reference_ldpc_dec_op(struct rte_bbdev_dec_op **ops, unsigned int n, unsigned int start_idx, @@ -2316,6 +2361,30 @@ validate_ldpc_bler(struct rte_bbdev_dec_op **ops, const uint16_t n) return errors; } +/* Check Number of code blocks errors */ +static int +validate_turbo_bler(struct rte_bbdev_dec_op **ops, const uint16_t n) +{ + unsigned int i; + struct op_data_entries *hard_data_orig = &test_vector.entries[DATA_HARD_OUTPUT]; + struct rte_bbdev_op_turbo_dec *ops_td; + struct rte_bbdev_op_data *hard_output; + int errors = 0; + struct rte_mbuf *m; + + for (i = 0; i < n; ++i) { + ops_td = &ops[i]->turbo_dec; + hard_output = &ops_td->hard_output; + m = hard_output->data; + if (memcmp(rte_pktmbuf_mtod_offset(m, uint32_t *, 0), + hard_data_orig->segments[0].addr, + hard_data_orig->segments[0].length)) + errors++; + } + return errors; +} + + static int validate_ldpc_dec_op(struct rte_bbdev_dec_op **ops, const uint16_t n, struct rte_bbdev_dec_op *ref_op, const int vector_mask) @@ -3771,6 +3840,126 @@ bler_pmd_lcore_ldpc_dec(void *arg) return TEST_SUCCESS; } + +static int +bler_pmd_lcore_turbo_dec(void *arg) +{ + struct thread_params *tp = arg; + uint16_t enq, deq; + uint64_t total_time = 0, start_time; + const uint16_t queue_id = tp->queue_id; + const uint16_t burst_sz = tp->op_params->burst_sz; + const uint16_t num_ops = tp->op_params->num_to_process; + struct rte_bbdev_dec_op *ops_enq[num_ops]; + struct rte_bbdev_dec_op *ops_deq[num_ops]; + struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op; + struct test_buffers *bufs = NULL; + int i, j, ret; + struct rte_bbdev_info info; + uint16_t num_to_enq; + + TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST), + "BURST_SIZE should be <= %u", MAX_BURST); + + rte_bbdev_info_get(tp->dev_id, &info); + + TEST_ASSERT_SUCCESS((num_ops > info.drv.queue_size_lim), + "NUM_OPS cannot exceed %u for this device", + info.drv.queue_size_lim); + + bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id]; + + rte_wait_until_equal_16(&tp->op_params->sync, SYNC_START, __ATOMIC_RELAXED); + + ret = rte_bbdev_dec_op_alloc_bulk(tp->op_params->mp, ops_enq, num_ops); + TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops); + + /* For BLER tests we need to enable early termination */ + if (!check_bit(ref_op->turbo_dec.op_flags, + RTE_BBDEV_TURBO_EARLY_TERMINATION)) + ref_op->turbo_dec.op_flags += + RTE_BBDEV_TURBO_EARLY_TERMINATION; + ref_op->turbo_dec.iter_max = get_iter_max(); + ref_op->turbo_dec.iter_count = ref_op->turbo_dec.iter_max; + + if (test_vector.op_type != RTE_BBDEV_OP_NONE) + copy_reference_dec_op(ops_enq, num_ops, 0, bufs->inputs, + bufs->hard_outputs, bufs->soft_outputs, + ref_op); + generate_turbo_llr_input(num_ops, bufs->inputs, ref_op); + + /* Set counter to validate the ordering */ + for (j = 0; j < num_ops; ++j) + ops_enq[j]->opaque_data = (void *)(uintptr_t)j; + + for (i = 0; i < 1; ++i) { /* Could add more iterations */ + uint32_t time_out = 0; + for (j = 0; j < num_ops; ++j) { + mbuf_reset( + ops_enq[j]->turbo_dec.hard_output.data); + } + + start_time = rte_rdtsc_precise(); + + for (enq = 0, deq = 0; enq < num_ops;) { + num_to_enq = burst_sz; + + if (unlikely(num_ops - enq < num_to_enq)) + num_to_enq = num_ops - enq; + + enq += rte_bbdev_enqueue_dec_ops(tp->dev_id, + queue_id, &ops_enq[enq], num_to_enq); + + deq += rte_bbdev_dequeue_dec_ops(tp->dev_id, + queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Enqueue timeout!"); + } + } + + /* dequeue the remaining */ + time_out = 0; + while (deq < enq) { + deq += rte_bbdev_dequeue_dec_ops(tp->dev_id, + queue_id, &ops_deq[deq], enq - deq); + time_out++; + if (time_out >= TIME_OUT_POLL) { + timeout_exit(tp->dev_id); + TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!"); + } + } + + total_time += rte_rdtsc_precise() - start_time; + } + + tp->iter_count = 0; + tp->iter_average = 0; + /* get the max of iter_count for all dequeued ops */ + for (i = 0; i < num_ops; ++i) { + tp->iter_count = RTE_MAX(ops_enq[i]->turbo_dec.iter_count, + tp->iter_count); + tp->iter_average += (double) ops_enq[i]->turbo_dec.iter_count; + } + + tp->iter_average /= num_ops; + tp->bler = (double) validate_turbo_bler(ops_deq, num_ops) / num_ops; + + rte_bbdev_dec_op_free_bulk(ops_enq, num_ops); + + double tb_len_bits = calc_dec_TB_size(ref_op); + tp->ops_per_sec = ((double)num_ops * 1) / + ((double)total_time / (double)rte_get_tsc_hz()); + tp->mbps = (((double)(num_ops * 1 * tb_len_bits)) / + 1000000.0) / ((double)total_time / + (double)rte_get_tsc_hz()); + printf("TBS %.0f Time %.0f\n", tb_len_bits, 1000000.0 * + ((double)total_time / (double)rte_get_tsc_hz())); + + return TEST_SUCCESS; +} + static int throughput_pmd_lcore_ldpc_dec(void *arg) { @@ -4275,7 +4464,7 @@ print_dec_bler(struct thread_params *t_params, unsigned int used_cores) total_bler /= used_cores; total_iter /= used_cores; - printf("SNR %.2f BLER %.1f %% - Iterations %.1f %d - Tp %.1f Mbps %s\n", + printf("SNR %.2f BLER %.1f %% - Iterations %.1f %d - Tp %.3f Mbps %s\n", snr, total_bler * 100, total_iter, get_iter_max(), total_mbps, get_vector_filename()); } @@ -4327,6 +4516,10 @@ bler_test(struct active_device *ad, && !check_bit(test_vector.ldpc_dec.op_flags, RTE_BBDEV_LDPC_LLR_COMPRESSION)) bler_function = bler_pmd_lcore_ldpc_dec; + else if ((test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC) && + !check_bit(test_vector.turbo_dec.op_flags, + RTE_BBDEV_TURBO_SOFT_OUTPUT)) + bler_function = bler_pmd_lcore_turbo_dec; else return TEST_SKIPPED; From patchwork Thu Mar 2 20:22:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124747 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 4F0E341DB8; Thu, 2 Mar 2023 21:23:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B013142D4F; Thu, 2 Mar 2023 21:22:10 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id A973642D1A for ; Thu, 2 Mar 2023 21:22:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788524; x=1709324524; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=whh1LOkkIj0aUAz7GiWQQpTvFnHjh4ZmEPKpSwUxOEk=; b=J0kupJDawWeZ8EF1OAqFusOlksaYYDAqY5bNclxhuw/VcYpZ8CURwkdB C3sPRTOvTY/DQhBgjmPtbogvEaFVD97avgNJkCmsj+jj28qxkDW/BsaPT 6lDopmMX9bfAR8Xcwe2D6lDoVwGITWmUcIB7a3anUgvBQbpkcCIMCO/zg aOvishPXG9nUKivB7/oeZ0AhXq6ry0c7bD9E2PJglLhdQ8Q26XmqcDhqK 3zSMsy3GaWxVNEOFk893PopoqKay+4X47OWmSVKed1dXyw62eWVQ4Yuuv m3Lgh6ZkyzTS8bYnmTJORwn0Zmar6nE6UPI+jR9DmbX3Q6udlZrXbrUYt w==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871213" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871213" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:03 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398124" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398124" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:02 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 11/17] test/bbdev: extend support for large TB Date: Thu, 2 Mar 2023 12:22:05 -0800 Message-Id: <20230302202211.170017-12-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 large TB when it cannot fit into a true mbuf. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index bd8310ac2c56..e611df75763c 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -1084,8 +1084,6 @@ init_op_data_objs(struct rte_bbdev_op_data *bufs, * Special case when DPDK mbuf cannot handle * the required input size */ - printf("Warning: Larger input size than DPDK mbuf %d\n", - seg->length); large_input = true; } bufs[i].data = m_head; @@ -2041,6 +2039,7 @@ validate_op_chain(struct rte_bbdev_op_data *op, struct rte_mbuf *m = op->data; uint8_t nb_dst_segments = orig_op->nb_segments; uint32_t total_data_size = 0; + bool ignore_mbuf = false; /* ignore mbuf limitations */ TEST_ASSERT(nb_dst_segments == m->nb_segs, "Number of segments differ in original (%u) and filled (%u) op", @@ -2053,21 +2052,25 @@ validate_op_chain(struct rte_bbdev_op_data *op, uint16_t data_len = rte_pktmbuf_data_len(m) - offset; total_data_size += orig_op->segments[i].length; - TEST_ASSERT(orig_op->segments[i].length == data_len, - "Length of segment differ in original (%u) and filled (%u) op", - orig_op->segments[i].length, data_len); + if (orig_op->segments[i].length > RTE_BBDEV_LDPC_E_MAX_MBUF) + ignore_mbuf = true; + if (!ignore_mbuf) + TEST_ASSERT(orig_op->segments[i].length == data_len, + "Length of segment differ in original (%u) and filled (%u) op", + orig_op->segments[i].length, data_len); TEST_ASSERT_BUFFERS_ARE_EQUAL(orig_op->segments[i].addr, rte_pktmbuf_mtod_offset(m, uint32_t *, offset), - data_len, + orig_op->segments[i].length, "Output buffers (CB=%u) are not equal", i); m = m->next; } /* Validate total mbuf pkt length */ uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset; - TEST_ASSERT(total_data_size == pkt_len, - "Length of data differ in original (%u) and filled (%u) op", - total_data_size, pkt_len); + if (!ignore_mbuf) + TEST_ASSERT(total_data_size == pkt_len, + "Length of data differ in original (%u) and filled (%u) op", + total_data_size, pkt_len); return TEST_SUCCESS; } From patchwork Thu Mar 2 20:22:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124749 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 E492241DB8; Thu, 2 Mar 2023 21:23:23 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0B62042D59; Thu, 2 Mar 2023 21:22:13 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 460E642D1A for ; Thu, 2 Mar 2023 21:22:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788525; x=1709324525; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jMPFnEKhqHBcRsSav+ALWvvM2f2p1k4/XLBn/XwOeyQ=; b=Ha4yGQUYGYvoBzqv33x6xscBhyUy2WptADngEet7NrYGYBhZ+DmSfXDo afVFLWOyzQe9/3KM8tlON1eVjoowhhk30pPlxpAJ8oVOv1Zr4ADAD3I56 4AN8T3giE641X03TgFWnbfLIsWGFQ55p+UM2D8qTWtL9+Bhx3Z0LImbVj BqfBPeNnWP9P4xwl4BgLqds22EQ5bT8/VPkWmzz/Jb16xlrqH+11afFs0 a5nvRVAH31LB+OFGWVdR50dOkqzwfaa5tMsBoLx3VFcSNHheBzqtnHlkp xw3QaEqLBC36CJwKiCgsYkAT0oi7JLVNFLPrFdCA8jCY4qzPoYvkHqTNU w==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871217" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871217" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398127" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398127" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:03 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 12/17] test/bbdev: adjustment for soft output Date: Thu, 2 Mar 2023 12:22:06 -0800 Message-Id: <20230302202211.170017-13-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Extend test-bbdev for soft output check, notably due to the logic in test-bbdev to enable termination changing. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index e611df75763c..98d01e8b299a 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -1360,6 +1360,7 @@ fill_queue_buffers(struct test_op_params *op_params, RTE_BBDEV_LDPC_LLR_COMPRESSION; bool harq_comp = op_params->ref_dec_op->ldpc_dec.op_flags & RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION; + ldpc_llr_decimals = capabilities->cap.ldpc_dec.llr_decimals; ldpc_llr_size = capabilities->cap.ldpc_dec.llr_size; ldpc_cap_flags = capabilities->cap.ldpc_dec.capability_flags; @@ -2434,7 +2435,7 @@ validate_ldpc_dec_op(struct rte_bbdev_dec_op **ops, const uint16_t n, i); if (ref_op->ldpc_dec.op_flags & RTE_BBDEV_LDPC_SOFT_OUT_ENABLE) - TEST_ASSERT_SUCCESS(validate_op_chain(soft_output, + TEST_ASSERT_SUCCESS(validate_op_so_chain(soft_output, soft_data_orig), "Soft output buffers (CB=%u) are not equal", i); @@ -2504,7 +2505,6 @@ validate_ldpc_enc_op(struct rte_bbdev_enc_op **ops, const uint16_t n, return TEST_SUCCESS; } - static inline int validate_op_fft_chain(struct rte_bbdev_op_data *op, struct op_data_entries *orig_op) { @@ -3191,11 +3191,11 @@ throughput_intr_lcore_ldpc_dec(void *arg) for (j = 0; j < TEST_REPETITIONS; ++j) { for (i = 0; i < num_to_process; ++i) { if (!loopback) - rte_pktmbuf_reset( - ops[i]->ldpc_dec.hard_output.data); + rte_pktmbuf_reset(ops[i]->ldpc_dec.hard_output.data); if (hc_out || loopback) - mbuf_reset( - ops[i]->ldpc_dec.harq_combined_output.data); + mbuf_reset(ops[i]->ldpc_dec.harq_combined_output.data); + if (ops[i]->ldpc_dec.soft_output.data != NULL) + rte_pktmbuf_reset(ops[i]->ldpc_dec.soft_output.data); } tp->start_time = rte_rdtsc_precise(); @@ -3290,7 +3290,6 @@ throughput_intr_lcore_dec(void *arg) rte_pktmbuf_reset(ops[i]->turbo_dec.soft_output.data); } - tp->start_time = rte_rdtsc_precise(); for (enqueued = 0; enqueued < num_to_process;) { num_to_enq = burst_sz; @@ -3764,10 +3763,11 @@ bler_pmd_lcore_ldpc_dec(void *arg) uint32_t time_out = 0; for (j = 0; j < num_ops; ++j) { if (!loopback) - mbuf_reset( - ops_enq[j]->ldpc_dec.hard_output.data); + mbuf_reset(ops_enq[j]->ldpc_dec.hard_output.data); if (hc_out || loopback) mbuf_reset(ops_enq[j]->ldpc_dec.harq_combined_output.data); + if (ops_enq[j]->ldpc_dec.soft_output.data != NULL) + mbuf_reset(ops_enq[j]->ldpc_dec.soft_output.data); } if (extDdr) preload_harq_ddr(tp->dev_id, queue_id, ops_enq, @@ -4023,11 +4023,11 @@ throughput_pmd_lcore_ldpc_dec(void *arg) uint32_t time_out = 0; for (j = 0; j < num_ops; ++j) { if (!loopback) - mbuf_reset( - ops_enq[j]->ldpc_dec.hard_output.data); + mbuf_reset(ops_enq[j]->ldpc_dec.hard_output.data); if (hc_out || loopback) - mbuf_reset( - ops_enq[j]->ldpc_dec.harq_combined_output.data); + mbuf_reset(ops_enq[j]->ldpc_dec.harq_combined_output.data); + if (ops_enq[j]->ldpc_dec.soft_output.data != NULL) + mbuf_reset(ops_enq[j]->ldpc_dec.soft_output.data); } if (extDdr) preload_harq_ddr(tp->dev_id, queue_id, ops_enq, From patchwork Thu Mar 2 20:22:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124750 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 8D18241DB8; Thu, 2 Mar 2023 21:23:30 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1FA6B42D5E; Thu, 2 Mar 2023 21:22:14 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 844DF42D33 for ; Thu, 2 Mar 2023 21:22:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788525; x=1709324525; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=C+XDFgy2mfwrPUaay4LuhF8M6azHDqWpsg+zticpvJU=; b=MOQaCzqLHg6EV4RBWvQTdphI7NPu5fbxJ0r5CzubURLJkaErQZyv8F0b X9+ictff06flSzrhxUZAESsOLoTRfNhJthbLpRbF+5v02lypOsMBTQRN6 3a5siDULMhw5mupCYbks08ebHE1Pcn/KPQwTytVwtQJ66hFSeNAa4F8ZX 7dsVy9jbOulx9O9bKWhTNsQgr/2ep98sOhVMrJWhRNd+Fz9+Cw9iEAlrZ 7Nl5sq1thWPrNhsAaj2+IAVQomZr8BU7D++xWj11zPrDSYys9Z7jItwdM bsZ8OyXS9brYmzH4yPwfscG7evHuEfpRzK1RjOWjFvhl+DoD3dSOQncUC A==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871221" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871221" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398130" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398130" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:04 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 13/17] test/bbdev: expose warning counters Date: Thu, 2 Mar 2023 12:22:07 -0800 Message-Id: <20230302202211.170017-14-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Print warnings reported on queues for offload test. No functional impact. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 98d01e8b299a..635c0a5eab48 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -5781,6 +5781,9 @@ offload_cost_test(struct active_device *ad, struct rte_bbdev_stats stats = {0}; get_bbdev_queue_stats(ad->dev_id, queue_id, &stats); + if (stats.enqueue_warn_count > 0) + printf("Warning reported on the queue : %10"PRIu64"\n", + stats.enqueue_warn_count); if (op_type != RTE_BBDEV_OP_LDPC_DEC) { TEST_ASSERT_SUCCESS(stats.enqueued_count != num_to_process, "Mismatch in enqueue count %10"PRIu64" %d", From patchwork Thu Mar 2 20:22:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124751 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 9AFFC41DB8; Thu, 2 Mar 2023 21:23:37 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4976842D63; Thu, 2 Mar 2023 21:22:15 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 3968742D33 for ; Thu, 2 Mar 2023 21:22:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788526; x=1709324526; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=p8ENaeeRE0HqMWbEYSs3ihOj54vg71NUCVc6wydhFZI=; b=mTeSv9jSIutMdmaNTf5l+yHPePiw+krowc5kcqgRZE8DezzaVfGEJDNa eu1wAF1h18ZzoKcA9iBXCdzVqdvk8M7/cIdHUCtUWbA6i6RCoF8KjWE1A zvsYSI6ZlWUdpCR/b7zGq12OhM49ZusAMqDuqFZHONTIX2PXru5GCAPWv XAbw65XQmEaGIaQFRVEK7ZyFDJ6GQOAzLanooKEZCY9B8bUP0sNNdozoa J0rblXOoZKaaILlu796RHNfFj7ch1QB6/ChpMGucyhlN7jzw8duhuFSRU jGftqRqIfLZQp5cYFpz5Cs8SCVB4xbOZzJu9Nr+VHMYC2GFSZn/oOHoOA A==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871227" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871227" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398133" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398133" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:05 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 14/17] test/bbdev: remove iteration count check Date: Thu, 2 Mar 2023 12:22:08 -0800 Message-Id: <20230302202211.170017-15-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 To make the test compatible with devices that do not support early termination, the iteration count assert can be removed. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index 635c0a5eab48..da5c3a4bc9a7 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -2300,7 +2300,7 @@ validate_op_so_chain(struct rte_bbdev_op_data *op, static int validate_dec_op(struct rte_bbdev_dec_op **ops, const uint16_t n, - struct rte_bbdev_dec_op *ref_op, const int vector_mask) + struct rte_bbdev_dec_op *ref_op) { unsigned int i; int ret; @@ -2311,17 +2311,12 @@ validate_dec_op(struct rte_bbdev_dec_op **ops, const uint16_t n, struct rte_bbdev_op_turbo_dec *ops_td; struct rte_bbdev_op_data *hard_output; struct rte_bbdev_op_data *soft_output; - struct rte_bbdev_op_turbo_dec *ref_td = &ref_op->turbo_dec; for (i = 0; i < n; ++i) { ops_td = &ops[i]->turbo_dec; hard_output = &ops_td->hard_output; soft_output = &ops_td->soft_output; - if (vector_mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT) - TEST_ASSERT(ops_td->iter_count <= ref_td->iter_count, - "Returned iter_count (%d) > expected iter_count (%d)", - ops_td->iter_count, ref_td->iter_count); ret = check_dec_status_and_ordering(ops[i], i, ref_op->status); TEST_ASSERT_SUCCESS(ret, "Checking status and ordering for decoder failed"); @@ -3070,8 +3065,7 @@ dequeue_event_callback(uint16_t dev_id, if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC) { struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op; - ret = validate_dec_op(tp->dec_ops, num_ops, ref_op, - tp->op_params->vector_mask); + ret = validate_dec_op(tp->dec_ops, num_ops, ref_op); /* get the max of iter_count for all dequeued ops */ for (i = 0; i < num_ops; ++i) tp->iter_count = RTE_MAX( @@ -3683,8 +3677,7 @@ throughput_pmd_lcore_dec(void *arg) } if (test_vector.op_type != RTE_BBDEV_OP_NONE) { - ret = validate_dec_op(ops_deq, num_ops, ref_op, - tp->op_params->vector_mask); + ret = validate_dec_op(ops_deq, num_ops, ref_op); TEST_ASSERT_SUCCESS(ret, "Validation failed!"); } @@ -4743,7 +4736,7 @@ throughput_test(struct active_device *ad, static int latency_test_dec(struct rte_mempool *mempool, struct test_buffers *bufs, struct rte_bbdev_dec_op *ref_op, - int vector_mask, uint16_t dev_id, uint16_t queue_id, + uint16_t dev_id, uint16_t queue_id, const uint16_t num_to_process, uint16_t burst_sz, uint64_t *total_time, uint64_t *min_time, uint64_t *max_time, bool disable_et) { @@ -4809,8 +4802,7 @@ latency_test_dec(struct rte_mempool *mempool, *total_time += last_time; if (test_vector.op_type != RTE_BBDEV_OP_NONE) { - ret = validate_dec_op(ops_deq, burst_sz, ref_op, - vector_mask); + ret = validate_dec_op(ops_deq, burst_sz, ref_op); TEST_ASSERT_SUCCESS(ret, "Validation failed!"); } @@ -5175,9 +5167,9 @@ validation_latency_test(struct active_device *ad, if (op_type == RTE_BBDEV_OP_TURBO_DEC) iter = latency_test_dec(op_params->mp, bufs, - op_params->ref_dec_op, op_params->vector_mask, - ad->dev_id, queue_id, num_to_process, - burst_sz, &total_time, &min_time, &max_time, latency_flag); + op_params->ref_dec_op, ad->dev_id, queue_id, + num_to_process, burst_sz, &total_time, + &min_time, &max_time, latency_flag); else if (op_type == RTE_BBDEV_OP_LDPC_ENC) iter = latency_test_ldpc_enc(op_params->mp, bufs, op_params->ref_enc_op, ad->dev_id, queue_id, From patchwork Thu Mar 2 20:22:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124752 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 E7F7C41DB8; Thu, 2 Mar 2023 21:23:45 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A0A0D42D75; Thu, 2 Mar 2023 21:22:16 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id E29CC42D12 for ; Thu, 2 Mar 2023 21:22:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788527; x=1709324527; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vhG7e2KZdohe+Y9YfQZLKcoO+EBphDpN6L8bY398obQ=; b=UhOTYaqY9FS7DooHDgsrsSI001TuNGAel2HlsWzs975wanPCTb+j6AYM G86rr7bdMxuqGaQKaYV+bR3pZeo0mJDV5SJ0SNUtegAOgr3+XSuf5CHCS HIid3prrJdfx9tE4zX1kwLXlGj5mrQV0XNOAo/53Bu1AS6Q+YlEenm29x HKVlmR+VP7oYgPCyv0IEJXAXZSHHI5DKegAb1Yp6O/UQL5VctGOl6u0/p o0bpnMX8rylh5sydmwff9lUDdb6r5gzNLrSHMQ+1O9o2D0Kng2tXOufJ6 PbrK4o6wydqHuSGfJB9Ty7+mPt+GH1Jw6N+qRBNwUI7B3Wy93fqAo0JAN w==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871231" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871231" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398136" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398136" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:05 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 15/17] test/bbdev: use mbuf reset function Date: Thu, 2 Mar 2023 12:22:09 -0800 Message-Id: <20230302202211.170017-16-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Use mbuf_reset function for code consistency. No functional impact. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index da5c3a4bc9a7..b92254519fdf 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -3185,11 +3185,11 @@ throughput_intr_lcore_ldpc_dec(void *arg) for (j = 0; j < TEST_REPETITIONS; ++j) { for (i = 0; i < num_to_process; ++i) { if (!loopback) - rte_pktmbuf_reset(ops[i]->ldpc_dec.hard_output.data); + mbuf_reset(ops[i]->ldpc_dec.hard_output.data); if (hc_out || loopback) mbuf_reset(ops[i]->ldpc_dec.harq_combined_output.data); if (ops[i]->ldpc_dec.soft_output.data != NULL) - rte_pktmbuf_reset(ops[i]->ldpc_dec.soft_output.data); + mbuf_reset(ops[i]->ldpc_dec.soft_output.data); } tp->start_time = rte_rdtsc_precise(); @@ -3279,9 +3279,9 @@ throughput_intr_lcore_dec(void *arg) for (j = 0; j < TEST_REPETITIONS; ++j) { for (i = 0; i < num_to_process; ++i) { - rte_pktmbuf_reset(ops[i]->turbo_dec.hard_output.data); + mbuf_reset(ops[i]->turbo_dec.hard_output.data); if (ops[i]->turbo_dec.soft_output.data != NULL) - rte_pktmbuf_reset(ops[i]->turbo_dec.soft_output.data); + mbuf_reset(ops[i]->turbo_dec.soft_output.data); } tp->start_time = rte_rdtsc_precise(); @@ -3368,7 +3368,7 @@ throughput_intr_lcore_enc(void *arg) for (j = 0; j < TEST_REPETITIONS; ++j) { for (i = 0; i < num_to_process; ++i) - rte_pktmbuf_reset(ops[i]->turbo_enc.output.data); + mbuf_reset(ops[i]->turbo_enc.output.data); tp->start_time = rte_rdtsc_precise(); for (enqueued = 0; enqueued < num_to_process;) { @@ -3456,7 +3456,7 @@ throughput_intr_lcore_ldpc_enc(void *arg) for (j = 0; j < TEST_REPETITIONS; ++j) { for (i = 0; i < num_to_process; ++i) - rte_pktmbuf_reset(ops[i]->turbo_enc.output.data); + mbuf_reset(ops[i]->turbo_enc.output.data); tp->start_time = rte_rdtsc_precise(); for (enqueued = 0; enqueued < num_to_process;) { @@ -3544,7 +3544,7 @@ throughput_intr_lcore_fft(void *arg) for (j = 0; j < TEST_REPETITIONS; ++j) { for (i = 0; i < num_to_process; ++i) - rte_pktmbuf_reset(ops[i]->fft.base_output.data); + mbuf_reset(ops[i]->fft.base_output.data); tp->start_time = rte_rdtsc_precise(); for (enqueued = 0; enqueued < num_to_process;) { From patchwork Thu Mar 2 20:22:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124754 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 9EEC241DB8; Thu, 2 Mar 2023 21:23:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AF8A442D8A; Thu, 2 Mar 2023 21:22:18 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id D4D3942BAC for ; Thu, 2 Mar 2023 21:22:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788528; x=1709324528; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1LpKoYYoDit9UG3bAOK6cQ05CWTyOZiT657la4lkus4=; b=bzk1607LHp8QfeE8VKRUrgKvGuyipaef7cfqOWNz5KcRJtdwyRw4MpXE oxkTKp67EGjIDlp9yokCakg73GyInHnCxCXaa8638TiaK0T4uzSaKe7OI jR2XBfOk30r6x1Ws2T2mTgthfjpacKqk0IT+JiWR7d+elCTWu21alFlRe 5mLBzLwOHwkaE8UxmijB+DxOfc57rGqX52GgTSnnN16EvQrWCNzwA+lnd T/ExKo4LpQ85vLcJ27qaHkBrtfSY9/uY6Us0ZDxv2RgvXPG0StHZl5DuB sKmU3BHMbUJNO2giWpf3oZJaTNrqdhU8NnQhQwpoRHDxCvkQWsdXvdC+q g==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871235" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871235" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398139" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398139" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:06 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 16/17] test/bbdev: remove max iteration from vectors Date: Thu, 2 Mar 2023 12:22:10 -0800 Message-Id: <20230302202211.170017-17-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 Remove iter_max from test vectors as this value is passed as an argument to the test. No functional impact. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 4 ++++ app/test-bbdev/test_bbdev_vector.c | 14 -------------- app/test-bbdev/test_bbdev_vector.h | 1 - app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_v11835.data | 3 --- .../test_vectors/ldpc_dec_v2342_drop.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_v7813.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_v8480.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_v8568.data | 3 --- app/test-bbdev/test_vectors/ldpc_dec_v9503.data | 3 --- .../turbo_dec_c1_k40_r0_e17280_sbd_negllr.data | 3 --- ...k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data | 3 --- ..._k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data | 3 --- .../turbo_dec_c1_k6144_r0_e34560_posllr.data | 3 --- .../turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data | 3 --- .../turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data | 3 --- ...bo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data | 3 --- 19 files changed, 4 insertions(+), 63 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index b92254519fdf..fcf0145fb2bf 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -3173,6 +3173,8 @@ throughput_intr_lcore_ldpc_dec(void *arg) num_to_process); TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_to_process); + ref_op->ldpc_dec.iter_max = get_iter_max(); + if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_ldpc_dec_op(ops, num_to_process, 0, bufs->inputs, bufs->hard_outputs, bufs->soft_outputs, @@ -5348,6 +5350,7 @@ offload_latency_test_dec(struct rte_mempool *mempool, struct test_buffers *bufs, ret = rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz); TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", burst_sz); + ref_op->turbo_dec.iter_max = get_iter_max(); if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_dec_op(ops_enq, burst_sz, dequeued, bufs->inputs, @@ -5434,6 +5437,7 @@ offload_latency_test_ldpc_dec(struct rte_mempool *mempool, ret = rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz); TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", burst_sz); + ref_op->ldpc_dec.iter_max = get_iter_max(); if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_ldpc_dec_op(ops_enq, burst_sz, dequeued, bufs->inputs, diff --git a/app/test-bbdev/test_bbdev_vector.c b/app/test-bbdev/test_bbdev_vector.c index 1125395dbff2..c26727cd35c4 100644 --- a/app/test-bbdev/test_bbdev_vector.c +++ b/app/test-bbdev/test_bbdev_vector.c @@ -532,10 +532,6 @@ parse_decoder_params(const char *key_token, char *token, vector->mask |= TEST_BBDEV_VF_RV_INDEX; turbo_dec->rv_index = (uint8_t) strtoul(token, &err, 0); ret = ((err == NULL) || (*err != '\0')) ? -1 : 0; - } else if (!strcmp(key_token, "iter_max")) { - vector->mask |= TEST_BBDEV_VF_ITER_MAX; - turbo_dec->iter_max = (uint8_t) strtoul(token, &err, 0); - ret = ((err == NULL) || (*err != '\0')) ? -1 : 0; } else if (!strcmp(key_token, "iter_min")) { vector->mask |= TEST_BBDEV_VF_ITER_MIN; turbo_dec->iter_min = (uint8_t) strtoul(token, &err, 0); @@ -862,10 +858,6 @@ parse_ldpc_decoder_params(const char *key_token, char *token, vector->mask |= TEST_BBDEV_VF_EXPECTED_ITER_COUNT; ldpc_dec->iter_count = (uint8_t) strtoul(token, &err, 0); ret = ((err == NULL) || (*err != '\0')) ? -1 : 0; - } else if (!strcmp(key_token, "iter_max")) { - vector->mask |= TEST_BBDEV_VF_ITER_MAX; - ldpc_dec->iter_max = (uint8_t) strtoul(token, &err, 0); - ret = ((err == NULL) || (*err != '\0')) ? -1 : 0; } else if (!strcmp(key_token, "code_block_mode")) { vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE; ldpc_dec->code_block_mode = (uint8_t) strtoul(token, &err, 0); @@ -1260,9 +1252,6 @@ check_decoder(struct test_bbdev_vector *vector) if (!(mask & TEST_BBDEV_VF_ITER_MIN)) printf( "WARNING: iter_min was not specified in vector file and will be set to 0\n"); - if (!(mask & TEST_BBDEV_VF_ITER_MAX)) - printf( - "WARNING: iter_max was not specified in vector file and will be set to 0\n"); if (!(mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT)) printf( "WARNING: expected_iter_count was not specified in vector file and iter_count will not be validated\n"); @@ -1335,9 +1324,6 @@ check_ldpc_decoder(struct test_bbdev_vector *vector) if (!(mask & TEST_BBDEV_VF_RV_INDEX)) printf( "INFO: rv_index was not specified in vector file and will be set to 0\n"); - if (!(mask & TEST_BBDEV_VF_ITER_MAX)) - printf( - "WARNING: iter_max was not specified in vector file and will be set to 0\n"); if (!(mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT)) printf( "WARNING: expected_iter_count was not specified in vector file and iter_count will not be validated\n"); diff --git a/app/test-bbdev/test_bbdev_vector.h b/app/test-bbdev/test_bbdev_vector.h index 4c53e8f137df..2ea271ffb78b 100644 --- a/app/test-bbdev/test_bbdev_vector.h +++ b/app/test-bbdev/test_bbdev_vector.h @@ -19,7 +19,6 @@ enum { TEST_BBDEV_VF_C = (1ULL << 7), TEST_BBDEV_VF_CAB = (1ULL << 8), TEST_BBDEV_VF_RV_INDEX = (1ULL << 9), - TEST_BBDEV_VF_ITER_MAX = (1ULL << 10), TEST_BBDEV_VF_ITER_MIN = (1ULL << 11), TEST_BBDEV_VF_EXPECTED_ITER_COUNT = (1ULL << 12), TEST_BBDEV_VF_EXT_SCALE = (1ULL << 13), diff --git a/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data b/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data index 5d4d27d6073d..215c30a610d4 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data @@ -340,9 +340,6 @@ rv_index= code_block_mode= 1 -iter_max= -20 - expected_iter_count= 20 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data b/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data index 63c2d3b618fe..09ffd7b40a1e 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data @@ -671,9 +671,6 @@ rv_index= code_block_mode= 1 -iter_max= -20 - expected_iter_count= 4 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data b/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data index 2463df6178db..c1cd088498d9 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data @@ -889,9 +889,6 @@ rv_index= code_block_mode= 1 -iter_max= -20 - expected_iter_count= 3 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_v11835.data b/app/test-bbdev/test_vectors/ldpc_dec_v11835.data index 84a04e11cc65..e899b95e74f9 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_v11835.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_v11835.data @@ -36,9 +36,6 @@ rv_index= code_block_mode= 1 -iter_max= -20 - expected_iter_count= 4 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data b/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data index f30726e46a76..31fef581b2c7 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data @@ -732,9 +732,6 @@ rv_index = code_block_mode = 1 -iter_max = -20 - expected_iter_count = 3 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_v7813.data b/app/test-bbdev/test_vectors/ldpc_dec_v7813.data index c656fd3e4ac5..de8fbbc08cbd 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_v7813.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_v7813.data @@ -35,9 +35,6 @@ rv_index = code_block_mode = 1 -iter_max = -8 - expected_iter_count = 6 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_v8480.data b/app/test-bbdev/test_vectors/ldpc_dec_v8480.data index ddebf7bee10b..197ed837cb40 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_v8480.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_v8480.data @@ -61,9 +61,6 @@ rv_index = code_block_mode = 1 -iter_max = -8 - expected_iter_count = 3 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_v8568.data b/app/test-bbdev/test_vectors/ldpc_dec_v8568.data index 0b95e4e0fa8b..b84361f247b1 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_v8568.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_v8568.data @@ -242,9 +242,6 @@ rv_index = code_block_mode = 1 -iter_max = -20 - expected_iter_count = 6 diff --git a/app/test-bbdev/test_vectors/ldpc_dec_v9503.data b/app/test-bbdev/test_vectors/ldpc_dec_v9503.data index 7699ae3157e7..4471f8bf5e04 100644 --- a/app/test-bbdev/test_vectors/ldpc_dec_v9503.data +++ b/app/test-bbdev/test_vectors/ldpc_dec_v9503.data @@ -1202,9 +1202,6 @@ rv_index = code_block_mode = 1 -iter_max = -20 - expected_iter_count = 3 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data b/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data index d98210ff6fc2..f147c8af533f 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data @@ -31,9 +31,6 @@ k = rv_index = 1 -iter_max = -8 - iter_min = 4 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data index 3472c992fd90..635078ab27e3 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data @@ -617,9 +617,6 @@ k = e = 10376 -iter_max = -8 - iter_min = 4 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data index 8ff71aac427b..de6136bd1be2 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data @@ -617,9 +617,6 @@ k = e = 10376 -iter_max = -8 - iter_min = 4 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data index fe4f5eefd25f..cb28ee1e976f 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data @@ -620,9 +620,6 @@ k = rv_index = 0 -iter_max = -8 - iter_min = 4 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data index b5ef624616ca..8ec4911d3c5d 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data @@ -1198,9 +1198,6 @@ k = rv_index = 0 -iter_max = -8 - iter_min = 4 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data index 13ad0908cec5..b6a73c6c07e4 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data @@ -1199,9 +1199,6 @@ k = rv_index = 0 -iter_max = -8 - iter_min = 4 diff --git a/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data b/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data index cfff56ad9a34..9d17b86c43b7 100644 --- a/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data +++ b/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data @@ -651,9 +651,6 @@ k_pos = rv_index = 0 -iter_max = -8 - iter_min = 4 From patchwork Thu Mar 2 20:22:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hernan Vargas X-Patchwork-Id: 124753 X-Patchwork-Delegate: maxime.coquelin@redhat.com 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 1B92741DB8; Thu, 2 Mar 2023 21:23:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9DD6742D85; Thu, 2 Mar 2023 21:22:17 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 4D38242D41 for ; Thu, 2 Mar 2023 21:22:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677788528; x=1709324528; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=70m7YyZiBOgMX7gOdOg+RjaITEmGRbDUsVty+dKbERg=; b=CGxNHkto3LX6/YwiiPEYJXsNnMFJpmflztP5pxpbByd54GYKOTs59g0W WTWtXsrP2Hwdi8oFPqgde2twTM5CUVBewqIg8he/OuG65YfoidKRIuMcf NzSgEOC2qyiA1hihbkfLGBvZ+mF+u8wEvHJG2eHgpVT2ggHy0CECG9Eul rnVptoxPPMmwyluqUIAd+fo8n7slp4/mmhjdf2NKHS4To0vPFG/HXdwgA YofbL+3rbNX4M/x2B6uDlq3cHm5m4ZsXHixkCdDNOSMCaJngfBjLhRzco HCVTQ1zKxQYyPk37KNmPOnbW6/1E8zPM48gOe5SpjUHUI2vN5h9wAVR5F w==; X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="334871240" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="334871240" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2023 12:22:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10637"; a="705398142" X-IronPort-AV: E=Sophos;i="5.98,228,1673942400"; d="scan'208";a="705398142" Received: from unknown (HELO csl-npg-qt0.la.intel.com) ([10.233.181.103]) by orsmga008.jf.intel.com with ESMTP; 02 Mar 2023 12:22:07 -0800 From: Hernan Vargas To: dev@dpdk.org, gakhil@marvell.com, trix@redhat.com, maxime.coquelin@redhat.com Cc: nicolas.chautru@intel.com, qi.z.zhang@intel.com, Hernan Vargas Subject: [PATCH v3 17/17] test/bbdev: remove iter count from bler test Date: Thu, 2 Mar 2023 12:22:11 -0800 Message-Id: <20230302202211.170017-18-hernan.vargas@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230302202211.170017-1-hernan.vargas@intel.com> References: <20230302202211.170017-1-hernan.vargas@intel.com> MIME-Version: 1.0 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 iter_count doesn't need to be set equal to iter_max for bler tests. This is only needed in throughput and latency tests because early termination is disabled for those tests. Signed-off-by: Hernan Vargas Reviewed-by: Maxime Coquelin --- app/test-bbdev/test_bbdev_perf.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c index fcf0145fb2bf..e56d314e93b5 100644 --- a/app/test-bbdev/test_bbdev_perf.c +++ b/app/test-bbdev/test_bbdev_perf.c @@ -3737,12 +3737,10 @@ bler_pmd_lcore_ldpc_dec(void *arg) TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops); /* For BLER tests we need to enable early termination */ - if (!check_bit(ref_op->ldpc_dec.op_flags, - RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE)) - ref_op->ldpc_dec.op_flags += - RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE; + if (!check_bit(ref_op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE)) + ref_op->ldpc_dec.op_flags += RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE; + ref_op->ldpc_dec.iter_max = get_iter_max(); - ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max; if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_ldpc_dec_op(ops_enq, num_ops, 0, bufs->inputs, @@ -3873,12 +3871,10 @@ bler_pmd_lcore_turbo_dec(void *arg) TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops); /* For BLER tests we need to enable early termination */ - if (!check_bit(ref_op->turbo_dec.op_flags, - RTE_BBDEV_TURBO_EARLY_TERMINATION)) - ref_op->turbo_dec.op_flags += - RTE_BBDEV_TURBO_EARLY_TERMINATION; + if (!check_bit(ref_op->turbo_dec.op_flags, RTE_BBDEV_TURBO_EARLY_TERMINATION)) + ref_op->turbo_dec.op_flags += RTE_BBDEV_TURBO_EARLY_TERMINATION; + ref_op->turbo_dec.iter_max = get_iter_max(); - ref_op->turbo_dec.iter_count = ref_op->turbo_dec.iter_max; if (test_vector.op_type != RTE_BBDEV_OP_NONE) copy_reference_dec_op(ops_enq, num_ops, 0, bufs->inputs,