From patchwork Fri Feb 10 17:58:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123700 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 364D041C50; Fri, 10 Feb 2023 19:02:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F423B42C54; Fri, 10 Feb 2023 19:02:47 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 1C4AE410EA; Fri, 10 Feb 2023 19:02:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052164; x=1707588164; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hZuc1w9f+7sAd8qKVpDzlGkFmUSFZdLfm80AIdXMQNo=; b=T8ef08vX+mX2iWzvVBCAPgANGaImmf/o2sAs3NQtVhlsgQKWVMFoWeyQ GX9qpq7gjpfVNlhMfCB0i+JwvEQLRelor1K/2LPxQfXWXP7wEmGM/4wC5 h9Wtv3q34ALNu3zm7sfVMnEsRCPjwu+yVqpz6h4TWjMVxZwflZnXJtS3g UdZQ7XHFWIeyyHX1Qx2hZBQKda7wSO2136aHC+lmNmkA5eRRQk19Ym6fX 0OQJDJ5diVhXYrXRK8edE/PmduJFRwCYqfCrMeRMhYAISv8CIRqsSM9b4 PVxuOab7ikYcpPs32AZNS3VZHjUl8R4EHm9sE9739KHgxTqUrMNjsY8y0 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117901" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117901" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076701" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076701" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:14 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 1/9] baseband/acc: protection for TB negative scenario Date: Fri, 10 Feb 2023 17:58:33 +0000 Message-Id: <20230210175841.303450-2-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 Adding handling of negative scenario for malformed Transport Block mode operations. Fixes: bec597b78a0 ("baseband/acc200: add LTE processing") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index 34e42d1f6e..3afaea71a3 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -1820,6 +1820,9 @@ enqueue_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op *op, r = op->turbo_enc.tb_params.r; while (mbuf_total_left > 0 && r < c) { + if (unlikely((input == NULL) || (output == NULL))) + return -1; + seg_total_left = rte_pktmbuf_data_len(input) - in_offset; /* Set up DMA descriptor */ desc = acc_desc(q, total_enqueued_cbs); @@ -1854,6 +1857,10 @@ enqueue_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op *op, r++; } + /* In case the number of CB doesn't match, the configuration was invalid. */ + if (unlikely(current_enqueued_cbs != cbs_in_tb)) + return -1; + /* Set SDone on last CB descriptor for TB mode. */ desc->req.sdone_enable = 1; @@ -2100,6 +2107,9 @@ vrb_enqueue_ldpc_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op *op, } while (mbuf_total_left > 0 && r < c) { + if (unlikely((input == NULL) || (h_output == NULL))) + return -1; + if (check_bit(op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_DEC_SCATTER_GATHER)) seg_total_left = rte_pktmbuf_data_len(input) - in_offset; else @@ -2145,6 +2155,10 @@ vrb_enqueue_ldpc_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op *op, r++; } + /* In case the number of CB doesn't match, the configuration was invalid. */ + if (unlikely(current_enqueued_cbs != cbs_in_tb)) + return -1; + #ifdef RTE_LIBRTE_BBDEV_DEBUG if (check_mbuf_total_left(mbuf_total_left) != 0) return -EINVAL; @@ -2187,6 +2201,8 @@ enqueue_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op *op, r = op->turbo_dec.tb_params.r; while (mbuf_total_left > 0 && r < c) { + if (unlikely((input == NULL) || (h_output == NULL))) + return -1; seg_total_left = rte_pktmbuf_data_len(input) - in_offset; @@ -2237,6 +2253,10 @@ enqueue_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op *op, r++; } + /* In case the number of CB doesn't match, the configuration was invalid. */ + if (unlikely(current_enqueued_cbs != cbs_in_tb)) + return -1; + /* Set SDone on last CB descriptor for TB mode */ desc->req.sdone_enable = 1; From patchwork Fri Feb 10 17:58:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123701 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 9E2F841C50; Fri, 10 Feb 2023 19:02:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 336C942D0B; Fri, 10 Feb 2023 19:02:49 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 67DFE410D3; Fri, 10 Feb 2023 19:02:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052165; x=1707588165; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=z9x7j7d8wtAKEc2sEIRRV2kQFNBIwjzyAG0cDRY4djI=; b=IH4i9W+7g6MdrxthOtidc54OApu5Fzcvv34xTR2Gn8ACR0tL9lpVJknO wbJQdxolkL+3vbUxBqle2qAcajAlhMNucP8q5q99Zb15268X6e8MtADWA GLX/fTjRGESALq9NfJq5j9c9xHpVorvNkbinTolbgTv/GABok5KiZa55T m0HMRB8RBreiDQp1lGrCcOyd2Bd786J7qtA93FunkpPLQsuPZQWy1haQR m0EPQXeyKWMS12I82hZjqV/HyJhRqJMvSBdNcds8Di9AfdMSuvgxs0keg NxmPAeAIsxU1kxZtp2JiuDglhgmJV0tNu3lxZegLFwEtY/3Puqz8sE78u Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117903" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117903" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076705" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076705" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:14 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 2/9] baseband/acc: remove interrupt support on VRB1 Date: Fri, 10 Feb 2023 17:58:34 +0000 Message-Id: <20230210175841.303450-3-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 Not enabling interrupt in VRB1 PMD variant to avoid potential corner case. Fixes: 3cabc8eaf524 ("baseband/acc200: support interrupt") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index 3afaea71a3..fc68f47ca6 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -586,6 +586,14 @@ vrb_intr_enable(struct rte_bbdev *dev) { int ret; struct acc_device *d = dev->data->dev_private; + + if (d->device_variant == VRB1_VARIANT) { + /* On VRB1: cannot enable MSI/IR to avoid potential back-pressure corner case. */ + rte_bbdev_log(ERR, "VRB1 (%s) doesn't support any MSI/MSI-X interrupt\n", + dev->data->name); + return -ENOTSUP; + } + /* * MSI/MSI-X are supported. * Option controlled by vfio-intr through EAL parameter. From patchwork Fri Feb 10 17:58:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123702 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 0E36841C50; Fri, 10 Feb 2023 19:03:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B4EF842D30; Fri, 10 Feb 2023 19:02:50 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 4C243410EA; Fri, 10 Feb 2023 19:02:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052165; x=1707588165; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XPBK/EtocLNp14Oh6Pl1sw4mDQbN7SOQ8ZmS4MCmHqE=; b=NinAGB5F+dC4MEY0eBwoC5N0pAomESROTkRYVfGdkF3EvjgJzRSxkWBV OV4V1igw0yfHzAyJy0g5ITClHK12qqKl3WxSoNZ4YfLBDqiiV+ec2SoEe vpdsbkU6UDbt3w10B0ceVhMOeDYo3SOnM7zVlkhHQcRGXo8C0A/HM8KDG fa9E2F5gt5Kv/B8yziO/0egOq7tnUJ8aeipO7067mfwzHk57/0EU2HstA 8uG8ctTWV2PUmh3J27TIECI/JCr02nO99HougQn6CTlB6qGwxw+MH0ERy XXirPGIeYidtFLgv0g/iGqotiIPjIhM+3czxuabo/admBwdR7GnDr0eRL A==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117907" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117907" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076709" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076709" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:14 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 3/9] baseband/acc: add explicit mbuf append for soft output Date: Fri, 10 Feb 2023 17:58:35 +0000 Message-Id: <20230210175841.303450-4-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 Adding an explicit mbuf append in the case of soft output mbuf being provided. Fixes: e640f6cdfa84 ("baseband/acc200: add LDPC processing") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index fc68f47ca6..b1134f244d 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -2066,6 +2066,10 @@ vrb_enqueue_ldpc_dec_one_op_cb(struct acc_queue *q, struct rte_bbdev_dec_op *op, } } + if (op->ldpc_dec.soft_output.length > 0) + mbuf_append(op->ldpc_dec.soft_output.data, op->ldpc_dec.soft_output.data, + op->ldpc_dec.soft_output.length); + #ifdef RTE_LIBRTE_BBDEV_DEBUG rte_memdump(stderr, "FCW", &desc->req.fcw_ld, sizeof(desc->req.fcw_ld) - 8); From patchwork Fri Feb 10 17:58:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123703 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 3257A41C50; Fri, 10 Feb 2023 19:03:13 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0848D42D3E; Fri, 10 Feb 2023 19:02:52 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 77DE642686; Fri, 10 Feb 2023 19:02:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052165; x=1707588165; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=d8otrFYnriUAaiqaZJ7lUa/yJvu7sDYdGNhRA920kmQ=; b=img0JxeBI3aPgztij0EOZS1Um4xZpLB4scdkq2h6Wllao/anrFoRVAVY FJfw3MuMSs0R+Gl/eZ1ukk2CC6qsKaNwfMyQWvFQdeRjmr20lcbhAv6O3 NvORgJDcdqR+FnRlC4T68HxXK2k38CcGEAMgSS+ndpWt49ZKFUTU0+r3j nYRrgUs5F5+UBNwLyhveDSds43A26rLk/KTmNBQAwmeBzGFFMUagSq3t0 Tfr8XPH0YTS+CH34wt4lGPHFbRgNHhcFG/wtFzMUxl93NHQ0mheRb7DGr UqTpnP859vIpIJPKChhqx88GAzx9uaJ8eD6tJ0v3g6n3cu8P6LQafDUzM A==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117909" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117909" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076712" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076712" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:15 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 4/9] baseband/acc: prevent to dequeue more than requested Date: Fri, 10 Feb 2023 17:58:36 +0000 Message-Id: <20230210175841.303450-5-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 corner-case when more operations are requested than expected, in the case of encoder muxing operations. Fixes: e640f6cdfa84 ("baseband/acc200: add LDPC processing") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index b1134f244d..a7d0b1e33c 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -2640,7 +2640,8 @@ vrb_enqueue_ldpc_dec(struct rte_bbdev_queue_data *q_data, /* Dequeue one encode operations from device in CB mode. */ static inline int vrb_dequeue_enc_one_op_cb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op, - uint16_t *dequeued_ops, uint32_t *aq_dequeued, uint16_t *dequeued_descs) + uint16_t *dequeued_ops, uint32_t *aq_dequeued, uint16_t *dequeued_descs, + uint16_t max_requested_ops) { union acc_dma_desc *desc, atom_desc; union acc_dma_rsp_desc rsp; @@ -2653,6 +2654,9 @@ vrb_dequeue_enc_one_op_cb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op, desc = q->ring_addr + desc_idx; atom_desc.atom_hdr = __atomic_load_n((uint64_t *)desc, __ATOMIC_RELAXED); + if (*dequeued_ops + desc->req.numCBs > max_requested_ops) + return -1; + /* Check fdone bit. */ if (!(atom_desc.rsp.val & ACC_FDONE)) return -1; @@ -2694,7 +2698,7 @@ vrb_dequeue_enc_one_op_cb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op, static inline int vrb_dequeue_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op, uint16_t *dequeued_ops, uint32_t *aq_dequeued, - uint16_t *dequeued_descs) + uint16_t *dequeued_descs, uint16_t max_requested_ops) { union acc_dma_desc *desc, *last_desc, atom_desc; union acc_dma_rsp_desc rsp; @@ -2705,6 +2709,9 @@ vrb_dequeue_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op, desc = acc_desc_tail(q, *dequeued_descs); atom_desc.atom_hdr = __atomic_load_n((uint64_t *)desc, __ATOMIC_RELAXED); + if (*dequeued_ops + 1 > max_requested_ops) + return -1; + /* Check fdone bit. */ if (!(atom_desc.rsp.val & ACC_FDONE)) return -1; @@ -2965,25 +2972,23 @@ vrb_dequeue_enc(struct rte_bbdev_queue_data *q_data, cbm = op->turbo_enc.code_block_mode; - for (i = 0; i < num; i++) { + for (i = 0; i < avail; i++) { if (cbm == RTE_BBDEV_TRANSPORT_BLOCK) ret = vrb_dequeue_enc_one_op_tb(q, &ops[dequeued_ops], &dequeued_ops, &aq_dequeued, - &dequeued_descs); + &dequeued_descs, num); else ret = vrb_dequeue_enc_one_op_cb(q, &ops[dequeued_ops], &dequeued_ops, &aq_dequeued, - &dequeued_descs); + &dequeued_descs, num); if (ret < 0) break; - if (dequeued_ops >= num) - break; } q->aq_dequeued += aq_dequeued; q->sw_ring_tail += dequeued_descs; - /* Update enqueue stats */ + /* Update enqueue stats. */ q_data->queue_stats.dequeued_count += dequeued_ops; return dequeued_ops; @@ -3009,15 +3014,13 @@ vrb_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data, if (cbm == RTE_BBDEV_TRANSPORT_BLOCK) ret = vrb_dequeue_enc_one_op_tb(q, &ops[dequeued_ops], &dequeued_ops, &aq_dequeued, - &dequeued_descs); + &dequeued_descs, num); else ret = vrb_dequeue_enc_one_op_cb(q, &ops[dequeued_ops], &dequeued_ops, &aq_dequeued, - &dequeued_descs); + &dequeued_descs, num); if (ret < 0) break; - if (dequeued_ops >= num) - break; } q->aq_dequeued += aq_dequeued; From patchwork Fri Feb 10 17:58:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123704 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 DC19641C50; Fri, 10 Feb 2023 19:03:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 224AF42D17; Fri, 10 Feb 2023 19:02:53 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id CD7A742BD9; Fri, 10 Feb 2023 19:02:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052166; x=1707588166; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=cgCwPXw1lZz60kZeznGk5uV6ZOLnm2642HhBn/Bak4k=; b=fOvOFwvJSpEz0Is9+yZHPpY41BuIkVzqDEgkNv0q99KO/wn9CtV2eVwL hcPkHlXqQU4FgDFMss5CgYZApvJmo4M469+IKCFFkJAqI3wxcQn1JH7K2 J6CpF+A6KEs4DItMDCljLM3nIqNBc91piL8DATgNwlAV/cquo0e5TJQfe ctuOxBbWbXkEyVSgE4XFDS0VudMBXiWNl24+SKPDuWznmSuEcUDMNpPQm m4PPJ78s/Atv+4sLWiCVzwh2dAWiGyw7D6mNNxIH2scYUDeZndarEZkzk zDsbHCozQv5pL7p72pXxuws0O997QiQ0QfR+Zu49cQtNP/qpuu9P8jSoR Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117912" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117912" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076715" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076715" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:15 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 5/9] baseband/acc: fix iteration counter in TB mode Date: Fri, 10 Feb 2023 17:58:37 +0000 Message-Id: <20230210175841.303450-6-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 The iteration count was not using correct structure (4G vs 5G) in TB mode. Fixes: bec597b78a0 ("baseband/acc200: add LTE processing") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index a7d0b1e33c..ccd3adaf93 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -2875,7 +2875,7 @@ vrb_dequeue_ldpc_dec_one_op_cb(struct rte_bbdev_queue_data *q_data, return 1; } -/* Dequeue one decode operations from device in TB mode. */ +/* Dequeue one decode operations from device in TB mode for 4G or 5G. */ static inline int vrb_dequeue_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op **ref_op, uint16_t dequeued_cbs, uint32_t *aq_dequeued) @@ -2929,8 +2929,12 @@ vrb_dequeue_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op **ref_op, /* CRC invalid if error exists. */ if (!op->status) op->status |= rsp.crc_status << RTE_BBDEV_CRC_ERROR; - op->turbo_dec.iter_count = RTE_MAX((uint8_t) rsp.iter_cnt, - op->turbo_dec.iter_count); + if (q->op_type == RTE_BBDEV_OP_LDPC_DEC) + op->ldpc_dec.iter_count = RTE_MAX((uint8_t) rsp.iter_cnt, + op->ldpc_dec.iter_count); + else + op->turbo_dec.iter_count = RTE_MAX((uint8_t) rsp.iter_cnt, + op->turbo_dec.iter_count); /* Check if this is the last desc in batch (Atomic Queue). */ if (desc->req.last_desc_in_batch) { From patchwork Fri Feb 10 17:58:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123706 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 9CD1C41C50; Fri, 10 Feb 2023 19:03:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C8B2542D55; Fri, 10 Feb 2023 19:02:55 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 5E2DB42C54; Fri, 10 Feb 2023 19:02:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052166; x=1707588166; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7AyhrUkWETyZi3oir1zCEeWil7sh6O1JaTNtJ1lNXkg=; b=X7W7rfytU83Yd5/Eh2NzdK9c5/KPagFyjI9JtfzKPyu8YJ8PhOIdtQxD 04X8u254al+Erd55YCTMW/1GCqrmHqz0C6OQSCIvgnOoER12wSyGIPg5Q amrWKuZtg212FLFv69/ctNxl7I5Bw3l758b+M+atwr7K6ddbfF0Sm/E+k yYwDM57tM+UHN+Ntugp0J5fSgbkxfXDkifrPQjLz1kAOGaiKm8/0J0OAh nNri3w/Go1MMIGbkGoQHZ/0KBy3QrmomE/sgOFT3u0AEEkFZviql1B+mx hTD7dx+13dcOr3cVdrZtl2Aw/6iTDPTRlqIKo3iQX8oSmrJtlEzEYuL/8 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117915" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117915" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076719" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076719" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:15 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 6/9] baseband/acc: fix potential arithmetic overflow Date: Fri, 10 Feb 2023 17:58:38 +0000 Message-Id: <20230210175841.303450-7-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 potential issue of overflow causing coverity warning. Coverity issue: 383154 Fixes: 8e16839937 ("baseband/acc: extension of the device structure") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 2 +- drivers/baseband/acc/vrb_pmd.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index ccd3adaf93..82dbfcaa53 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -518,7 +518,7 @@ vrb_setup_queues(struct rte_bbdev *dev, uint16_t num_queues, int socket_id) if (d->tail_ptrs == NULL) d->tail_ptrs = rte_zmalloc_socket( dev->device->driver->name, - d->num_qgroups * d->num_aqs * sizeof(uint32_t), + VRB_MAX_QGRPS * VRB_MAX_AQS * sizeof(uint32_t), RTE_CACHE_LINE_SIZE, socket_id); if (d->tail_ptrs == NULL) { rte_bbdev_log(ERR, "Failed to allocate tail ptr for %s:%u", diff --git a/drivers/baseband/acc/vrb_pmd.h b/drivers/baseband/acc/vrb_pmd.h index f3c9239881..01028273e7 100644 --- a/drivers/baseband/acc/vrb_pmd.h +++ b/drivers/baseband/acc/vrb_pmd.h @@ -36,6 +36,7 @@ #define VRB_NUM_ACCS 6 #define VRB_MAX_QGRPS 32 +#define VRB_MAX_AQS 32 #define ACC_STATUS_WAIT 10 #define ACC_STATUS_TO 100 From patchwork Fri Feb 10 17:58:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123705 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 EDEA141C50; Fri, 10 Feb 2023 19:03:28 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7E42B42D4E; Fri, 10 Feb 2023 19:02:54 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 4A164410EA; Fri, 10 Feb 2023 19:02:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052166; x=1707588166; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZS5n45w88O+407+r7QK/NjhNYwuGFZmFLJjqxbPVr8w=; b=c6HnyWjabJrv2u4oFPbvD5E1mZtR4qyVOfapHLW2Ky/heeAH6vnXbSQo xtvH7wfj0WjQzbljZR3G4r3py3RbNfpdQ+J15PW2jgIP86n1HlAUc8Dy2 IULfyHDRBBMhF1lhuKmIOJJFe7QA215O/Ovm9Su8ZKdcZSzwJLuo3gBHK sq0zSku6OWtHsy4hK+rrehKqQRkw09w/t9ERrIAM2LE9pG82Gt5CO+SdL z5LL3Pm2H3vJYkHw10YI4c1HxFqauDMjPuvIFy3QSMQE+/B8z9FYOQHTN ORmSot3UxoUIuLlmiAEmBiHhmIwH3Y9saAdO/CQZ9WsYhfijF8C2witUj w==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117917" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117917" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076722" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076722" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:16 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 7/9] baseband/acc: add support for 4GUL CRC drop in VRB PMD Date: Fri, 10 Feb 2023 17:58:39 +0000 Message-Id: <20230210175841.303450-8-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 Adding support for the capability to drop the CRC24B when using the turbo-decoder. Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index 82dbfcaa53..5d385ce1a5 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -996,6 +996,7 @@ vrb_dev_info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info) .capability_flags = RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE | RTE_BBDEV_TURBO_CRC_TYPE_24B | + RTE_BBDEV_TURBO_DEC_CRC_24B_DROP | RTE_BBDEV_TURBO_EQUALIZER | RTE_BBDEV_TURBO_SOFT_OUT_SATURATE | RTE_BBDEV_TURBO_HALF_ITERATION_EVEN | @@ -1407,8 +1408,12 @@ vrb_dma_desc_td_fill(struct rte_bbdev_dec_op *op, } if ((op->turbo_dec.code_block_mode == RTE_BBDEV_TRANSPORT_BLOCK) - && !check_bit(op->turbo_dec.op_flags, - RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP)) + && !check_bit(op->turbo_dec.op_flags, + RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP)) + crc24_overlap = 24; + if ((op->turbo_dec.code_block_mode == RTE_BBDEV_CODE_BLOCK) + && check_bit(op->turbo_dec.op_flags, + RTE_BBDEV_TURBO_DEC_CRC_24B_DROP)) crc24_overlap = 24; /* Calculates circular buffer size. From patchwork Fri Feb 10 17:58:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123707 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 AB52D41C50; Fri, 10 Feb 2023 19:03:45 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8339542D69; Fri, 10 Feb 2023 19:02:57 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id E4AC642D12; Fri, 10 Feb 2023 19:02:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052168; x=1707588168; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=J4jxVhvIW8uPqNat4UaV9kC2Rv6PwpYwVGjH8IvO8YY=; b=DTU0a6pfev9MUm5zcfwn6keAuQnUy3rCl9TPZBC5E6L1j//qRvsJhmwf 8FLrVNn3sdohBcDQ5dVFhHFaODndwPWDdjM9Cx8AsIRDYVPf/0DGVVx4L els1fRLhTPWNsCzRkbK483IuOxAbHbGqVoLbPe8Ao9iHJy27GFdoZ92Ms z+Lx53vDeExrRJyIdnkglqp+69I9xL8CberqHUMlGovDzN93OYS6VUNRH wFmbXyANt+yeidJcE3TC2tuJwsa+GEHJC+uPq6I+himHC+7143cuE2IbF L1j6ttxu2mQF2PTr+kR/WVF90eZkEb6Qa70yPiaGOvlQZjF54ZmUFh1yV g==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117920" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117920" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076725" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076725" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:16 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 8/9] baseband/acc: add support for 4GUL with SO and TB Date: Fri, 10 Feb 2023 17:58:40 +0000 Message-Id: <20230210175841.303450-9-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 Implementation to support the case when using LTE decoder with soft output and transport block mode. Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_vrb_pmd.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index 5d385ce1a5..236f21dca3 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -1199,15 +1199,12 @@ vrb_fcw_td_fill(const struct rte_bbdev_dec_op *op, struct acc_fcw_td *fcw) fcw->bypass_sb_deint = !check_bit(op->turbo_dec.op_flags, RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE); if (op->turbo_dec.code_block_mode == RTE_BBDEV_TRANSPORT_BLOCK) { - /* FIXME for TB block */ + fcw->c = op->turbo_dec.tb_params.c; fcw->k_pos = op->turbo_dec.tb_params.k_pos; - fcw->k_neg = op->turbo_dec.tb_params.k_neg; } else { + fcw->c = 1; fcw->k_pos = op->turbo_dec.cb_params.k; - fcw->k_neg = op->turbo_dec.cb_params.k; } - fcw->c = 1; - fcw->c_neg = 1; if (check_bit(op->turbo_dec.op_flags, RTE_BBDEV_TURBO_SOFT_OUTPUT)) { fcw->soft_output_en = 1; fcw->sw_soft_out_dis = 0; @@ -1218,8 +1215,14 @@ vrb_fcw_td_fill(const struct rte_bbdev_dec_op *op, struct acc_fcw_td *fcw) if (check_bit(op->turbo_dec.op_flags, RTE_BBDEV_TURBO_EQUALIZER)) { fcw->bypass_teq = 0; - fcw->ea = op->turbo_dec.cb_params.e; - fcw->eb = op->turbo_dec.cb_params.e; + if (op->turbo_dec.code_block_mode == RTE_BBDEV_TRANSPORT_BLOCK) { + fcw->cab = op->turbo_dec.tb_params.cab; + fcw->ea = op->turbo_dec.tb_params.ea; + fcw->eb = op->turbo_dec.tb_params.eb; + } else { + fcw->ea = op->turbo_dec.cb_params.e; + fcw->eb = op->turbo_dec.cb_params.e; + } if (op->turbo_dec.rv_index == 0) fcw->k0_start_col = ACC_FCW_TD_RVIDX_0; else if (op->turbo_dec.rv_index == 1) @@ -1396,9 +1399,7 @@ vrb_dma_desc_td_fill(struct rte_bbdev_dec_op *op, desc->numCBs = 1; if (op->turbo_dec.code_block_mode == RTE_BBDEV_TRANSPORT_BLOCK) { - k = (r < op->turbo_dec.tb_params.c_neg) - ? op->turbo_dec.tb_params.k_neg - : op->turbo_dec.tb_params.k_pos; + k = op->turbo_dec.tb_params.k_pos; e = (r < op->turbo_dec.tb_params.cab) ? op->turbo_dec.tb_params.ea : op->turbo_dec.tb_params.eb; From patchwork Fri Feb 10 17:58:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123708 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 C818641C50; Fri, 10 Feb 2023 19:03:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AB46942D62; Fri, 10 Feb 2023 19:02:58 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 06BB842C76; Fri, 10 Feb 2023 19:02:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676052168; x=1707588168; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=neBmZ5AomxbokOjQy1YO9RluzBJWHojlF1bGxorH0o8=; b=BGImbSCHV289J+dSjLCJj/Pe9+7IiCxq2JKMJTud+pVx1GE1l+5v1KZw edUv6wMvoUH3GfW12YxqN1duyhcQYcrCqpJov58coCnmFm2uZ3r+Uoi91 rbzm1OxDoaaElXOiG5uvkz3HViHZuH6A+x+23x4oBqBhsYTHHXR9+9z0Q jnKh5sN7XJsSyKmpTwbuEOtU6GeBjAKB3wZKZj8OMcG1MNxRs15HEbF4b 2PHL1H9LqfLTUEr9Fl37e3dWE9xLfmaB3GAML4+5af1WKPCcSM9A0b7ny +ADu+TeCKHeXBUZOhTUmVr3iXpy9pD7NCxfpZMehV/wiXwAC/W0PfLULo A==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310117921" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="310117921" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:02:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="670076728" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="670076728" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga007.fm.intel.com with ESMTP; 10 Feb 2023 10:02:16 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.org, Nicolas Chautru Subject: [PATCH v2 9/9] baseband/acc: remove printf from PMD function Date: Fri, 10 Feb 2023 17:58:41 +0000 Message-Id: <20230210175841.303450-10-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230210175841.303450-1-nicolas.chautru@intel.com> References: <20230209221929.265059-2-nicolas.chautru@intel.com> <20230210175841.303450-1-nicolas.chautru@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 Replacing usage of printf in companion function for bbdev-test by rte_log. Signed-off-by: Nicolas Chautru Reviewed-by: Maxime Coquelin --- drivers/baseband/acc/rte_acc100_pmd.c | 18 +++++++++--------- drivers/baseband/acc/rte_vrb_pmd.c | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c index 36f6fec5ad..40b5eaf089 100644 --- a/drivers/baseband/acc/rte_acc100_pmd.c +++ b/drivers/baseband/acc/rte_acc100_pmd.c @@ -4347,7 +4347,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc_device *d, { int i, template_idx, qg_idx; uint32_t address, status, value; - printf("Need to clear power-on 5GUL status in internal memory\n"); + rte_bbdev_log(WARNING, "Need to clear power-on 5GUL status in internal memory"); /* Reset LDPC Cores */ for (i = 0; i < ACC100_ENGINES_MAX; i++) acc_reg_write(d, HWPfFecUl5gCntrlReg + @@ -4421,7 +4421,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc_device *d, /* Force each engine which is in unspecified state */ for (i = 0; i < num_failed_engine; i++) { int failed_engine = engines_to_restart[i]; - printf("Force engine %d\n", failed_engine); + rte_bbdev_log(WARNING, "Force engine %d", failed_engine); for (template_idx = ACC100_SIG_UL_5G; template_idx <= ACC100_SIG_UL_5G_LAST; template_idx++) { @@ -4450,7 +4450,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc_device *d, acc_reg_write(d, HWPfQmgrIngressAq + 0x100, enq_req.val); usleep(ACC_LONG_WAIT * 100); if (desc->req.word0 != 2) - printf("DMA Response %#"PRIx32"\n", desc->req.word0); + rte_bbdev_log(WARNING, "DMA Response %#"PRIx32"\n", desc->req.word0); } /* Reset LDPC Cores */ @@ -4482,7 +4482,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc_device *d, } else acc_reg_write(d, address, 0); } - printf("Number of 5GUL engines %d\n", numEngines); + rte_bbdev_log(INFO, "Number of 5GUL engines %d", numEngines); rte_free(d->sw_rings_base); usleep(ACC_LONG_WAIT); @@ -4671,7 +4671,7 @@ acc100_configure(const char *dev_name, struct rte_acc_conf *conf) } else acc_reg_write(d, address, 0); } - printf("Number of 5GUL engines %d\n", numEngines); + rte_bbdev_log(INFO, "Number of 5GUL engines %d", numEngines); /* 4GDL */ numQqsAcc += numQgs; numQgs = conf->q_dl_4g.num_qgroups; @@ -4801,7 +4801,7 @@ acc100_configure(const char *dev_name, struct rte_acc_conf *conf) version += acc_reg_read(d, HWPfDdrPhyIdtmFwVersion + 4 * i) << (8 * i); if (version != ACC100_PRQ_DDR_VER) { - printf("* Note: Not on DDR PRQ version %8x != %08x\n", + rte_bbdev_log(ERR, "* Note: Not on DDR PRQ version %8x != %08x", version, ACC100_PRQ_DDR_VER); } else if (firstCfg) { /* ---- DDR configuration at boot up --- */ @@ -4871,7 +4871,7 @@ acc100_configure(const char *dev_name, struct rte_acc_conf *conf) if (value & 1) break; } - printf("DDR Training completed in %d ms", i); + rte_bbdev_log(INFO, "DDR Training completed in %d ms", i); /* Enable Memory Controller */ acc_reg_write(d, HWPfDdrUmmcCtrl, 0x401); /* Release AXI interface reset */ @@ -5047,7 +5047,7 @@ acc101_configure(const char *dev_name, struct rte_acc_conf *conf) } else acc_reg_write(d, address, 0); } - printf("Number of 5GUL engines %d\n", numEngines); + rte_bbdev_log(INFO, "Number of 5GUL engines %d", numEngines); /* 4GDL */ numQqsAcc += numQgs; numQgs = conf->q_dl_4g.num_qgroups; @@ -5185,7 +5185,7 @@ rte_acc_configure(const char *dev_name, struct rte_acc_conf *conf) return -ENODEV; } struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(bbdev->device); - printf("Configure dev id %x\n", pci_dev->id.device_id); + rte_bbdev_log(INFO, "Configure dev id %x", pci_dev->id.device_id); if (pci_dev->id.device_id == ACC100_PF_DEVICE_ID) return acc100_configure(dev_name, conf); else if (pci_dev->id.device_id == ACC101_PF_DEVICE_ID) diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c index 236f21dca3..9e5a73c9c7 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -3633,7 +3633,7 @@ vrb1_configure(const char *dev_name, struct rte_acc_conf *conf) } else acc_reg_write(d, address, 0); } - printf("Number of 5GUL engines %d\n", numEngines); + rte_bbdev_log(INFO, "Number of 5GUL engines %d", numEngines); /* 4GDL */ numQqsAcc += numQgs; numQgs = conf->q_dl_4g.num_qgroups;