From patchwork Thu Feb 9 22:19:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123611 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 A8BDF41C56; Thu, 9 Feb 2023 23:23:18 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 18EB642B8C; Thu, 9 Feb 2023 23:23:12 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id AE49F4067B; Thu, 9 Feb 2023 23:23: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=1675981388; x=1707517388; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FqZpfOjPVq+wGiSyvw/GWSdIORd4YTCWXaPf6wcLr/0=; b=mFVoB8gPP78rBaMDAoygywKn98x9rJ0U7v8oGb5fvjA87S6Y6mYEz5P9 x/R4tXBywrxFI+joUYsyFHr+HKdaMQANHuZtAd32eXFMkIUpX7dSc4HAV AV/FXE4UeZzHDx1Tlvbu7hZk7mxf75WAtiUk5ctP1Dv0rUGU2YQ6RIUVj A6kOyAxNP/L6V3n5l6P9AEBVYNjcXc42QmF+LhPpMnoVV8r0C/cS70QSn 1H6AdwXcAsn1F8bNiA82qPpDIk56i9UMSTkLaa4lJYYIZdWw9F1YfPJyV Twl0qThyUsXy51LLMISbTofpZngoFEFr3VwntC1W+pvkiUYMhB1Gia5Wc w==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563022" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563022" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513261" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513261" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:04 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 1/9] baseband/acc: protection for TB negative scenario Date: Thu, 9 Feb 2023 22:19:21 +0000 Message-Id: <20230209221929.265059-2-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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..797330a5dd 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 (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 (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 (current_enqueued_cbs != cbs_in_tb) + return -1; + /* Set SDone on last CB descriptor for TB mode */ desc->req.sdone_enable = 1; From patchwork Thu Feb 9 22:19:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123610 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 EB30841C56; Thu, 9 Feb 2023 23:23:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1FCA9410F9; Thu, 9 Feb 2023 23:23:11 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id BE27E40E50; Thu, 9 Feb 2023 23:23: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=1675981388; x=1707517388; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=b7bPRW3CJRVx4M5VHU/rFWfIcqtpIC93vn6D7qN4+CU=; b=PHFIhTVZ1gqP/NVO0zALUGrxQr6Xdkk3lgKBK7AVY/We+oqQHAorvjWR sOMfCsi7H2Gy0ztqCVJAaHdTMHW6V2DJvFyHQ7MMHO0t0SFcqIPrD8jUO hHTi4owSoHaGN9/lsXdy+zPvQ8RxsJ6yQgZcWdSrYuxCKsqlsHC/oBu0O NIuNr+jEgG28JIM4Es57s562/4bunV44V9TYCvXSwXJNmDpNd6eBp/yEl WyrZcyxAJRa20ycVL6z51TD+se44GDPh1yD19QZcLBiSlJMvVvgWlptEN 3EbSqB6ey2wpW8a4oTYfeSryy/VrV8lSySJJjGEsmyonsiEGZqDqSVUS9 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563032" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563032" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513264" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513264" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:05 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 2/9] baseband/acc: add support for 4GUL with SO and TB Date: Thu, 9 Feb 2023 22:19:22 +0000 Message-Id: <20230209221929.265059-3-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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. Fixes: bec597b78a0 ("baseband/acc200: add LTE processing") Cc: stable@dpdk.org Signed-off-by: Nicolas Chautru --- 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 797330a5dd..c43c08afe8 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -1190,15 +1190,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; @@ -1209,8 +1206,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) @@ -1387,9 +1390,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 Thu Feb 9 22:19:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123613 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 35B5F41C56; Thu, 9 Feb 2023 23:23:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 99BC842D17; Thu, 9 Feb 2023 23:23:14 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 8546742670; Thu, 9 Feb 2023 23:23: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=1675981388; x=1707517388; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QDLKDQwRyAkntVhT3a2smO6U2VM4GT7/jbRRMB6IJpA=; b=BlfJU1MvV1OWoqVJHIICGqR1gIbXhzQgBDoOwV0vofLoAUSe35CK3JSL Gdvrw/Y4a93r63RlqFy1MkgKOkgFkPJsg/NKj6Mrh+mhWejq9S+cz5guO uRnq8+9SDfJ56HMmiuDPm8AYc3kT5kWWoCTTxoPx0fmQoiynf4Kn/4Aqq cd0TNJWS0OV59XhaCUIVE7crD56aU6s3EQmByhh3EesAo80uWUfCN8/86 N5MbSOm2ODS15aqYBWhTUjhA7Vdf/rri6i06XK61PL5M1Xb1SHyZX8Ttj TUoL1JlSF38O+Fo5n9GsfaUnoeMXqGmGWUhqMqHpZCIzFnxN2vNEP+6vL Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563034" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563034" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513267" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513267" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:05 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 3/9] baseband/acc: remove interrupt support on VRB1 Date: Thu, 9 Feb 2023 22:19:23 +0000 Message-Id: <20230209221929.265059-4-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 c43c08afe8..a111836e51 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 Thu Feb 9 22:19:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123612 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 88D6941C56; Thu, 9 Feb 2023 23:23:26 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 90EEE42D2C; Thu, 9 Feb 2023 23:23:13 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 95A3942686; Thu, 9 Feb 2023 23:23: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=1675981389; x=1707517389; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2/L+4hDovLmOazI/dUjuCBuVZPmD1Y9R6MrBT4X0aZc=; b=AeU4d32jNWIpIDIrbO47f8NPVoo+niKLyqsWKIYiIdwlC0pPZiRkJvP+ KXVLRXTHYV7/IXnn2u/YoZ79KUiIAhlrupXsbdaVUXuXNM3KTPp573ApL QFF2Lhlzp+NMX0+JOr0K84jry65NmmY4SBYA94SpC12h/BzQjGNeNb+em 4E4btBe9KUrmSzTQIzruKcmPg8Ef9YtkOyf8lI2xLmGjSAmcnmTIvB4QY +OlkYHWjxMGm3hEdIWfxzHOtddyeIQMerxuyD3ekMyajKY1HvUZcTdbGK lgoxniTJ+FJTcD6ZhP9e+Bbf8+3edgw5hAmLGszzelY/Zk1QVvErFYG5E A==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563040" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563040" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513270" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513270" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:05 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 4/9] baseband/acc: add explicit mbuf apend for soft output Date: Thu, 9 Feb 2023 22:19:24 +0000 Message-Id: <20230209221929.265059-5-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 --- 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 a111836e51..8540e3d31c 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -2067,6 +2067,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 Thu Feb 9 22:19:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123614 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 78E0B41C56; Thu, 9 Feb 2023 23:23:38 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BAB2B42D38; Thu, 9 Feb 2023 23:23:15 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 1260340E50; Thu, 9 Feb 2023 23:23: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=1675981389; x=1707517389; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+mZelvjpZkn8ipU8/zAcyjFNcGMSqhYKkCrpzrlTAwQ=; b=L1kRgLnZW8d0PSZUca+hn7aIXiRs5gaHCVLJ93evRnB7fQwzWGycJsi9 yT8swWnFNdOwjXZQdUCZ30U6+VlD8MLZBJZeh0ixOi/CCPgRX67acDRlM wYCAkDncxLr+lxNYI2gIhhaaWV12dWlcRLcD4BDQzQZEFz2m/7ZOjJ7ij XVHSN1f6muQlAk8AO8wKWd4Kh9BaIXh0k7lPS8urNK3g5WbzvQNoB4Rm2 6RfvKlm0HFpWjztJ/xqrgeHrl3jtDg2ZjNxSOXWjCNiZY6+nziteCeoEJ ietKbsWtDkA23WsSNGdGBMhPdxFt51Z0OTgmviDacbnnksR+D3yEDJCZh A==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563041" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563041" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513274" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513274" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:06 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 5/9] baseband/acc: prevent to dequeue more than requested Date: Thu, 9 Feb 2023 22:19:25 +0000 Message-Id: <20230209221929.265059-6-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 8540e3d31c..b251ad25c6 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -2641,7 +2641,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; @@ -2654,6 +2655,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; @@ -2695,7 +2699,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; @@ -2706,6 +2710,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; @@ -2966,25 +2973,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; @@ -3010,15 +3015,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 Thu Feb 9 22:19:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123615 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 3079E41C56; Thu, 9 Feb 2023 23:23:44 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 120E642D12; Thu, 9 Feb 2023 23:23:17 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 616B242686; Thu, 9 Feb 2023 23:23:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675981389; x=1707517389; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3d4nZqbJpu2GsJRPFbJAWsHDnm2OT/usgz4eAx/c930=; b=YCjGDOoRAIEoJkXpbJDeoBpZVMnXpV/ulKWxV7XjYPsX/2vpsXlrNTrQ kKGiFsj+UlgZUdE5TchcpLGTFnjuq8lPPZIef90w7rsxVXIYtCdEBR9b6 +vbwG7rmhH+9Pt3TZgsvnOLVxSCjItxM1/sYzSg87y8/48jvTGRUNAcB5 fOkt2RBUMHD2iokW1WeR/4WxnAFdAXbSHqUzivl16YV9dogkuYu449/UU mZsJk6XDk8zJuHmCnhXmJkxIZFtT7CARQpHbVzD4CbIEC8O0rBwJQS2fV KRzG5qVRi/FINzusNq6b8zUDbYsE/SI7OiJ0uwXAY7gSbpfr/u9NeFT1o Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563044" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563044" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513277" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513277" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:06 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 6/9] baseband/acc: fix iteration counter in TB mode Date: Thu, 9 Feb 2023 22:19:26 +0000 Message-Id: <20230209221929.265059-7-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 b251ad25c6..0bd5c65177 100644 --- a/drivers/baseband/acc/rte_vrb_pmd.c +++ b/drivers/baseband/acc/rte_vrb_pmd.c @@ -2876,7 +2876,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) @@ -2930,8 +2930,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 Thu Feb 9 22:19:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123616 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 F273341C56; Thu, 9 Feb 2023 23:23:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4CCC442D49; Thu, 9 Feb 2023 23:23:18 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 6CD1F42670; Thu, 9 Feb 2023 23:23:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675981389; x=1707517389; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gVGfCBfJeEdv1CeYx1HsVRQU19v0Vkh5Qyml2wKWqmM=; b=IkWkuTnqWyYy41KtxSJo2cyIxEAYejD6h4kWdWJjW2XeTug4gWwqCCnT fYKURChqV/T+jJuSM5sXAK3wJh0M+f6yc7LFk8jUqIeOOL5xqHerXO2xV Qc730L2xQ7zRZlwLREfIFba85XuroKvc5Z3HcFAiORpDX7Z5ebT+sQUW8 HnvY2zQyLaG3/v1+35Au6YCRHUZJCTPgRFJaQaNe9uKgtEJJ1rdxFNehA jFIWpjj9B9SBe/GOAfzq1hYGA8XuLDKq9BzpDkyJkr5GN8j5Q0459Px4/ lD+nc3IAkr1juGKI4L8FBi3yFG7BPdChGmTlO3mcb9XmWPymTImzIzZ3r g==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563046" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563046" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513280" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513280" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:06 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru , stable@dpdk.org Subject: [PATCH v1 7/9] baseband/acc: fix potential arithmetic overflow Fix potential issue of overflow causing coverity warning. Date: Thu, 9 Feb 2023 22:19:27 +0000 Message-Id: <20230209221929.265059-8-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 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 0bd5c65177..8fcb06b4ff 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 Thu Feb 9 22:19:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123617 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 7383841C56; Thu, 9 Feb 2023 23:23:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6C41742D4D; Thu, 9 Feb 2023 23:23:19 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id DB5B240E50 for ; Thu, 9 Feb 2023 23:23:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675981390; x=1707517390; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NHAWkjSTs//EZA8TL383LYLoKjh4QtzvIgbAtwcEHv8=; b=jsl5KX9YJOQFbvzJnT6ekakSpl9PUOHJenDALaix06eP/bSGS3NsIG7z vnXb/bj9NlrQQx0FxznFuB5rrBhl3J5fHddRsWKO5zL+W9kC5HN9JF8l2 9urShNNrPqpSk7RKIxzGjpRxxdhTDCR9ZuBsE9OVIAN2KHiqmAYsMd58U XjrB8ghUes/Mp3hwLUaq3Ygzpqz1r+lfynn7bTQGyFj6pBbbA44F7qFu+ nCIpVIaxiXd4q/GBPOJgc9BM96TY2z57xra+OUBDycgKryF/yMiXoyR7R cPst068n0yJSwlEDKIuaIn1/BW3jTD8Ki7KQ/y5BjzTShfNpoQ0OqN26Y g==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563058" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563058" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513286" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513286" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:07 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru Subject: [PATCH v1 8/9] baseband/acc: add support for 4GUL CRC drop in VRB PMD Date: Thu, 9 Feb 2023 22:19:28 +0000 Message-Id: <20230209221929.265059-9-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 8fcb06b4ff..18b5dab25f 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 | @@ -1408,8 +1409,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 Thu Feb 9 22:19:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chautru, Nicolas" X-Patchwork-Id: 123618 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 A42C641C56; Thu, 9 Feb 2023 23:24:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 833D542D51; Thu, 9 Feb 2023 23:23:20 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 340A642670 for ; Thu, 9 Feb 2023 23:23:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675981390; x=1707517390; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pvDW38u5DkfxicweyuL0Mv/nHi0tZGPDgHuAh847Tl8=; b=QkKAXwGmtOpLaWEmq+EATDoRXG+1pWWKgAHNf/WutaHmQWVofWMcWBt4 q6MjaMgmT/B5lIiQ7K5D72KFxixC5Q0fwQh1U9agfBhKinA/5gylo7Db5 eQ61B8o48mT/+asQ6R71y+IvM8aXFSs2Dw3Z95Zv8viaWNDMWgbsL0rW5 Irfv7CMKHaaJIjkSft2UN5BkbDBqL2xV2noVXfRorekBM5k7RCkBNpaA9 wlDGW2t5g6Fi+8chwf4EsYUD1qEbKIga0NxPAkWO461LXrN6IGkXJHoPC fCizjAP93QAefSilB1kiW6WLGhjk6MOAdGNtygV4Z8cbDbcJ2DA46lNVu Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331563063" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="331563063" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 14:23:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736513289" X-IronPort-AV: E=Sophos;i="5.97,285,1669104000"; d="scan'208";a="736513289" Received: from spr-npg-bds1-eec2.sn.intel.com (HELO spr-npg-bds1-eec2..) ([10.233.181.123]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 14:23:07 -0800 From: Nicolas Chautru To: dev@dpdk.org, maxime.coquelin@redhat.com Cc: hernan.vargas@intel.com, stable@dpdk.or, Nicolas Chautru Subject: [PATCH v1 9/9] baseband/acc: remove printf from PMD function Date: Thu, 9 Feb 2023 22:19:29 +0000 Message-Id: <20230209221929.265059-10-nicolas.chautru@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230209221929.265059-1-nicolas.chautru@intel.com> References: <20230209221929.265059-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 18b5dab25f..c37f725415 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;