DPDK patches and discussions
 help / color / mirror / Atom feed
From: Akhil Goyal <akhil.goyal@nxp.com>
To: Nicolas Chautru <nicolas.chautru@intel.com>,
	"thomas@monjalon.net" <thomas@monjalon.net>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: "ferruh.yigit@intel.com" <ferruh.yigit@intel.com>
Subject: Re: [dpdk-dev] [PATCH v3 04/14] baseband/turbo_sw: support large size code block
Date: Wed, 25 Mar 2020 10:18:15 +0000	[thread overview]
Message-ID: <VE1PR04MB66392FC06BA22E48EBA389D0E6CE0@VE1PR04MB6639.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <1583348102-13253-5-git-send-email-nicolas.chautru@intel.com>



> 
> From: Nic Chautru <nicolas.chautru@intel.com>
> 
> This is to support cases when the input data for
> decoding a code block is larger than 64kB and would
> not fit as a contiguous block of data into one
> mbuf. In that case the length from the opearation
> supersedes the mbug default structure.
Spell check
Operation
Mbuf

> 
> Signed-off-by: Nic Chautru <nicolas.chautru@intel.com>
> ---
>  app/test-bbdev/test_bbdev_perf.c                 | 40 +++++++++++++++++++-----
>  doc/guides/rel_notes/release_20_05.rst           |  6 ++++
>  drivers/baseband/turbo_sw/bbdev_turbo_software.c | 11 ++++---
>  3 files changed, 45 insertions(+), 12 deletions(-)
> 
> diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-
> bbdev/test_bbdev_perf.c
> index d8db58e..d46966d 100644
> --- a/app/test-bbdev/test_bbdev_perf.c
> +++ b/app/test-bbdev/test_bbdev_perf.c
> @@ -764,6 +764,7 @@ typedef int (test_case_function)(struct active_device
> *ad,
>  {
>  	int ret;
>  	unsigned int i, j;
> +	bool large_input = false;
> 
>  	for (i = 0; i < n; ++i) {
>  		char *data;
> @@ -774,24 +775,47 @@ typedef int (test_case_function)(struct active_device
> *ad,
>  				op_type, n * ref_entries->nb_segments,
>  				mbuf_pool->size);
> 
> -		TEST_ASSERT_SUCCESS(((seg->length +
> RTE_PKTMBUF_HEADROOM) >
> -				(uint32_t)UINT16_MAX),
> -				"Given data is bigger than allowed mbuf
> segment size");
> -
> +		if (seg->length > 64000) {
Shouldn't this be seg->length + RTE_PKTMBUF_HEADROOM and you don't need
A check again in assert.
64000 should be a MACRO

> +			/*
> +			 * 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;
> +		} else {
> +			TEST_ASSERT_SUCCESS(
> +					((seg->length +
> RTE_PKTMBUF_HEADROOM)
> +					> (uint32_t)UINT16_MAX),
> +					"Given data is bigger than allowed
> mbuf segment size"
> +					);
> +		}
>  		bufs[i].data = m_head;
>  		bufs[i].offset = 0;
>  		bufs[i].length = 0;
> 
>  		if ((op_type == DATA_INPUT) || (op_type ==
> DATA_HARQ_INPUT)) {
> -			data = rte_pktmbuf_append(m_head, seg->length);
> -			TEST_ASSERT_NOT_NULL(data,
> +			if ((op_type == DATA_INPUT) && large_input) {
> +				/* Allocate a fake overused mbuf */
> +				data = rte_malloc(NULL, 128 * 1024, 0);

Again hard coding. Define some macros to know the basis of this value.

> +				memcpy(data, seg->addr, seg->length);
> +				m_head->buf_addr = data;
> +				m_head->buf_iova = rte_mem_virt2phy(data);
> +				m_head->data_off = 0;
> +				m_head->data_len = seg->length;
> +			} else {
> +				data = rte_pktmbuf_append(m_head, seg-
> >length);
> +				TEST_ASSERT_NOT_NULL(data,
>  					"Couldn't append %u bytes to mbuf
> from %d data type mbuf pool",
>  					seg->length, op_type);
> 
> -			TEST_ASSERT(data == RTE_PTR_ALIGN(data,
> min_alignment),
> +				TEST_ASSERT(data == RTE_PTR_ALIGN(
> +						data, min_alignment),
>  					"Data addr in mbuf (%p) is not aligned
> to device min alignment (%u)",
>  					data, min_alignment);
> -			rte_memcpy(data, seg->addr, seg->length);
> +				rte_memcpy(data, seg->addr, seg->length);
> +			}
> +
>  			bufs[i].length += seg->length;
> 
>  			for (j = 1; j < ref_entries->nb_segments; ++j) {
> diff --git a/doc/guides/rel_notes/release_20_05.rst
> b/doc/guides/rel_notes/release_20_05.rst
> index 2190eaf..d6c3dfb 100644
> --- a/doc/guides/rel_notes/release_20_05.rst
> +++ b/doc/guides/rel_notes/release_20_05.rst
> @@ -56,6 +56,12 @@ New Features
>       Also, make sure to start the actual text at the margin.
>       =========================================================
> 
> +* **Updated the TURBO_SW bbdev PMD.**
> +
> +  Updated the ``turbo_sw`` bbdev driver with changes including:
> +
> +  * Support for large size code block not fitting in one mbuf segment.
> +  * Exposes the accurate LLR decimal assumption.

Is it really worth to highlight this in release note? You even suggested not to
Backport it to stable. I am not sure if it is really that important to be highlighted
In release notes.
If at all, this patch is not changing the LLR decimal. This should be moved to
Appropriate patch.

> 
>  Removed Items
>  -------------
> diff --git a/drivers/baseband/turbo_sw/bbdev_turbo_software.c
> b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
> index 5ca8ca1..ea3fecb 100644
> --- a/drivers/baseband/turbo_sw/bbdev_turbo_software.c
> +++ b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
> @@ -1335,7 +1335,7 @@ struct turbo_sw_queue {
> 
>  static inline void
>  process_ldpc_dec_cb(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
> -		uint8_t c, uint16_t out_length, uint16_t e,
> +		uint8_t c, uint16_t out_length, uint32_t e,
>  		struct rte_mbuf *m_in,
>  		struct rte_mbuf *m_out_head, struct rte_mbuf *m_out,
>  		struct rte_mbuf *m_harq_in,
> @@ -1617,8 +1617,8 @@ struct turbo_sw_queue {
>  		struct rte_bbdev_stats *queue_stats)
>  {
>  	uint8_t c, r = 0;
> -	uint16_t e, out_length;
> -	uint16_t crc24_overlap = 0;
> +	uint32_t e;
> +	uint16_t out_length, crc24_overlap = 0;
>  	struct rte_bbdev_op_ldpc_dec *dec = &op->ldpc_dec;
>  	struct rte_mbuf *m_in = dec->input.data;
>  	struct rte_mbuf *m_harq_in = dec->harq_combined_input.data;
> @@ -1661,7 +1661,10 @@ struct turbo_sw_queue {
>  			e = (r < dec->tb_params.cab) ?
>  				dec->tb_params.ea : dec->tb_params.eb;
> 
> -		seg_total_left = rte_pktmbuf_data_len(m_in) - in_offset;
> +		if (e < 64000) /* Special case handling when overusing mbuf */
Macro for 64000

> +			seg_total_left = rte_pktmbuf_data_len(m_in) -
> in_offset;
> +		else
> +			seg_total_left = e;
> 
>  		process_ldpc_dec_cb(q, op, c, out_length, e,
>  				m_in, m_out_head, m_out,
> --
> 1.8.3.1


  parent reply	other threads:[~2020-03-25 10:18 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27  4:38 [dpdk-dev] [PATCH v1 00/14] bbdev new features Nicolas Chautru
2020-02-27  4:38 ` [dpdk-dev] [PATCH v1 01/14] bbdev: add capability flag for filler bits inclusion in HARQ Nicolas Chautru
2020-02-27  4:38 ` [dpdk-dev] [PATCH v1 02/14] bbdev: expose device HARQ buffer size at device level Nicolas Chautru
2020-02-27  4:38 ` [dpdk-dev] [PATCH v1 03/14] baseband/turbo_sw: fix the exposed LLR decimals assumption Nicolas Chautru
2020-02-27  4:38 ` [dpdk-dev] [PATCH v1 04/14] baseband/turbo_sw: support large size code block Nicolas Chautru
2020-02-27  4:38 ` [dpdk-dev] [PATCH v1 05/14] test-bbdev: rename FPGA LTE macros to be more explicit Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 06/14] test-bbdev: support HARQ validation Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 07/14] test-bbdev: support for performance tests Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 08/14] test-bbdev: support for LDPC interrupt test Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 09/14] test-bbdev: support for offload test for LDPC Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 10/14] test-bbdev: vectors update Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 11/14] doc: update of testbbdev documentation Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 12/14] drivers/baseband: add PMD for FPGA 5GNR FEC Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 13/14] test-bbdev: add support for FPGA driver initialization Nicolas Chautru
2020-02-27  4:39 ` [dpdk-dev] [PATCH v1 14/14] doc: add feature matrix table for bbdev devices Nicolas Chautru
2020-03-04 18:22   ` [dpdk-dev] [PATCH v2 00/15] bbdev new features Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 01/15] bbdev: add capability flag for filler bits inclusion in HARQ Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 02/15] bbdev: expose device HARQ buffer size at device level Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 03/15] baseband/turbo_sw: fix the exposed LLR decimals assumption Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 04/15] baseband/turbo_sw: support large size code block Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 05/15] test-bbdev: rename FPGA LTE macros to be more explicit Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 06/15] test-bbdev: support HARQ validation Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 07/15] test-bbdev: support for performance tests Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 08/15] test-bbdev: support for LDPC interrupt test Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 09/15] test-bbdev: support for offload test for LDPC Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 10/15] test-bbdev: vectors update Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 11/15] doc: update of testbbdev documentation Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 12/15] drivers/baseband: add PMD for FPGA 5GNR FEC Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 13/15] test-bbdev: add support for FPGA driver initialization Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 14/15] doc: add feature matrix table for bbdev devices Nicolas Chautru
2020-03-04 18:22     ` [dpdk-dev] [PATCH v2 15/15] doc: add release note for bbdev PMD update Nicolas Chautru
2020-03-04 18:54   ` [dpdk-dev] [PATCH v3 00/14] bbdev new features Nicolas Chautru
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 01/14] bbdev: add capability flag for filler bits inclusion in HARQ Nicolas Chautru
2020-03-13 10:42       ` Dave Burley
2020-03-25  9:53       ` Akhil Goyal
2020-03-26  2:47         ` Chautru, Nicolas
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 02/14] bbdev: expose device HARQ buffer size at device level Nicolas Chautru
2020-03-13 10:47       ` Dave Burley
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 03/14] baseband/turbo_sw: fix the exposed LLR decimals assumption Nicolas Chautru
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 04/14] baseband/turbo_sw: support large size code block Nicolas Chautru
2020-03-13 16:10       ` Dave Burley
2020-03-25 10:18       ` Akhil Goyal [this message]
2020-03-26  2:50         ` Chautru, Nicolas
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 05/14] test-bbdev: rename FPGA LTE macros to be more explicit Nicolas Chautru
2020-03-13 10:55       ` Dave Burley
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 06/14] test-bbdev: support HARQ validation Nicolas Chautru
2020-03-25 13:23       ` Akhil Goyal
2020-03-26  2:53         ` Chautru, Nicolas
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 07/14] test-bbdev: support for performance tests Nicolas Chautru
2020-03-13 10:58       ` Dave Burley
2020-03-25 13:47       ` Akhil Goyal
2020-03-26  2:56         ` Chautru, Nicolas
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 08/14] test-bbdev: support for LDPC interrupt test Nicolas Chautru
2020-03-13 10:59       ` Dave Burley
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 09/14] test-bbdev: support for offload test for LDPC Nicolas Chautru
2020-03-25 13:54       ` Akhil Goyal
2020-03-26  2:57         ` Chautru, Nicolas
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 10/14] test-bbdev: vectors update Nicolas Chautru
2020-03-13 11:02       ` Dave Burley
2020-03-25 13:58       ` Akhil Goyal
2020-03-26  2:59         ` Chautru, Nicolas
2020-03-04 18:54     ` [dpdk-dev] [PATCH v3 11/14] doc: update of testbbdev documentation Nicolas Chautru
2020-03-13 11:03       ` Dave Burley
2020-03-25 14:48       ` Akhil Goyal
2020-03-26  3:02         ` Chautru, Nicolas
2020-03-04 18:55     ` [dpdk-dev] [PATCH v3 12/14] drivers/baseband: add PMD for FPGA 5GNR FEC Nicolas Chautru
2020-03-13 11:03       ` Dave Burley
2020-03-25 14:59       ` Akhil Goyal
2020-03-26  3:16         ` Chautru, Nicolas
2020-03-26  5:27           ` Akhil Goyal
2020-03-30  0:09             ` Chautru, Nicolas
2020-03-04 18:55     ` [dpdk-dev] [PATCH v3 13/14] test-bbdev: add support for FPGA driver initialization Nicolas Chautru
2020-03-13 11:05       ` Dave Burley
2020-03-04 18:55     ` [dpdk-dev] [PATCH v3 14/14] doc: add feature matrix table for bbdev devices Nicolas Chautru
2020-03-13 11:05       ` Dave Burley
2020-03-12 20:10     ` [dpdk-dev] [PATCH v3 00/14] bbdev new features Chautru, Nicolas
2020-03-13  7:15       ` Akhil Goyal
2020-03-24 23:47         ` Chautru, Nicolas
2020-03-26  2:45   ` [dpdk-dev] [PATCH v4 00/10] " Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 01/10] bbdev: add capability flag for filler bits inclusion in HARQ Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 02/10] bbdev: expose device HARQ buffer size at device level Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 03/10] baseband/turbo_sw: fix the exposed LLR decimals assumption Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 04/10] baseband/turbo_sw: support large size code block Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 05/10] test-bbdev: rename FPGA LTE macros to be more explicit Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 06/10] test-bbdev: support HARQ validation Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 07/10] test-bbdev: support for performance tests Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 08/10] test-bbdev: support for LDPC interrupt test Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 09/10] test-bbdev: support for offload test for LDPC Nicolas Chautru
2020-03-26  2:45     ` [dpdk-dev] [PATCH v4 10/10] test-bbdev: vectors update Nicolas Chautru
2020-03-26  3:27   ` [dpdk-dev] [PATCH v5 00/10] bbdev new features Nicolas Chautru
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 01/10] bbdev: add capability flag for filler bits inclusion in HARQ Nicolas Chautru
2020-03-27 11:44       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 02/10] bbdev: expose device HARQ buffer size at device level Nicolas Chautru
2020-03-27 11:45       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 03/10] baseband/turbo_sw: fix the exposed LLR decimals assumption Nicolas Chautru
2020-03-27 11:45       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 04/10] baseband/turbo_sw: support large size code block Nicolas Chautru
2020-03-27 11:45       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 05/10] test-bbdev: rename FPGA LTE macros to be more explicit Nicolas Chautru
2020-03-27 11:45       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 06/10] test-bbdev: support HARQ validation Nicolas Chautru
2020-03-27 11:47       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 07/10] test-bbdev: support for performance tests Nicolas Chautru
2020-03-27 11:47       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 08/10] test-bbdev: support for LDPC interrupt test Nicolas Chautru
2020-03-27 11:47       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 09/10] test-bbdev: support for offload test for LDPC Nicolas Chautru
2020-03-27 11:47       ` Dave Burley
2020-03-26  3:27     ` [dpdk-dev] [PATCH v5 10/10] test-bbdev: vectors update Nicolas Chautru
2020-03-27 11:47       ` Dave Burley
2020-03-27 11:43     ` [dpdk-dev] [PATCH v5 00/10] bbdev new features Dave Burley
2020-04-05 16:41     ` Akhil Goyal
2020-03-03 18:08 ` [dpdk-dev] [PATCH v1 00/14] " Chautru, Nicolas
2020-03-04  8:23   ` Thomas Monjalon
2020-03-04 18:28     ` Chautru, Nicolas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=VE1PR04MB66392FC06BA22E48EBA389D0E6CE0@VE1PR04MB6639.eurprd04.prod.outlook.com \
    --to=akhil.goyal@nxp.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=nicolas.chautru@intel.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).