DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH v2 0/2] doc/guides: bbdev clean up
@ 2023-10-13 21:42 Nicolas Chautru
  2023-10-13 21:42 ` [PATCH v2 1/2] doc: bbdev device discovery clarification Nicolas Chautru
  2023-10-13 21:42 ` [PATCH v2 2/2] doc/guides: refer to generic bbdev test section Nicolas Chautru
  0 siblings, 2 replies; 5+ messages in thread
From: Nicolas Chautru @ 2023-10-13 21:42 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

v2: adding extra commit to refer to bbdev test doc from each PMD
and avoid duplication.

  Adding more information in bbdev documentation related to the
bbdev device discovery from info_get which was not very verbose so far.
Notably for FEC and FFT operations which have extra parameters to
manage different implementation variants.

Also use code snippet to refer to info structure and keep the doc
in sync moving forward.

Nicolas Chautru (2):
  doc: bbdev device discovery clarification
  doc/guides: refer to generic bbdev test section

 doc/guides/bbdevs/acc100.rst        | 33 ++--------------
 doc/guides/bbdevs/fpga_5gnr_fec.rst | 39 ++-----------------
 doc/guides/bbdevs/fpga_lte_fec.rst  | 40 ++-----------------
 doc/guides/bbdevs/la12xx.rst        | 32 ++-------------
 doc/guides/bbdevs/vrb1.rst          | 36 ++---------------
 doc/guides/bbdevs/vrb2.rst          | 36 ++---------------
 doc/guides/prog_guide/bbdev.rst     | 60 ++++++++++++++++++++++++-----
 doc/guides/tools/testbbdev.rst      |  2 +
 lib/bbdev/rte_bbdev.h               |  6 +++
 9 files changed, 79 insertions(+), 205 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/2] doc: bbdev device discovery clarification
  2023-10-13 21:42 [PATCH v2 0/2] doc/guides: bbdev clean up Nicolas Chautru
@ 2023-10-13 21:42 ` Nicolas Chautru
  2023-10-23  9:21   ` Maxime Coquelin
  2023-10-13 21:42 ` [PATCH v2 2/2] doc/guides: refer to generic bbdev test section Nicolas Chautru
  1 sibling, 1 reply; 5+ messages in thread
From: Nicolas Chautru @ 2023-10-13 21:42 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

Adding more context and information related the data exposed
through device discovery notably for FEC and FFT operations.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 doc/guides/prog_guide/bbdev.rst | 60 ++++++++++++++++++++++++++++-----
 lib/bbdev/rte_bbdev.h           |  6 ++++
 2 files changed, 57 insertions(+), 9 deletions(-)

diff --git a/doc/guides/prog_guide/bbdev.rst b/doc/guides/prog_guide/bbdev.rst
index c43e478eda..01a8a6d79b 100644
--- a/doc/guides/prog_guide/bbdev.rst
+++ b/doc/guides/prog_guide/bbdev.rst
@@ -261,16 +261,58 @@ information:
   structure, this is where capabilities reside along with other specifics like:
   maximum queue sizes and priority level.
 
-.. code-block:: c
+.. literalinclude:: ../../../lib/bbdev/rte_bbdev.h
+   :language: c
+   :start-after: Structure rte_bbdev_driver_info 8<
+   :end-before: >8 End of structure rte_bbdev_driver_info.
 
-    struct rte_bbdev_info {
-        int socket_id;
-        const char *dev_name;
-        const struct rte_device *device;
-        uint16_t num_queues;
-        bool started;
-        struct rte_bbdev_driver_info drv;
-    };
+.. literalinclude:: ../../../lib/bbdev/rte_bbdev.h
+   :language: c
+   :start-after: Structure rte_bbdev_info 8<
+   :end-before: >8 End of structure rte_bbdev_info.
+
+Capabilities details for LDPC Decoder
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+On top of the ``RTE_BBDEV_LDPC_<*>`` capabilities the device also exposes the LLR numerical
+representation expected by the decoder as a fractional fixed-point representation.
+For instance, when the representation (``llr_size``, ``llr_decimals``) = (8, 2) respectively,
+this means that each input LLR in the data provided by the application must be computed as 8 total
+bits (including sign bit) where 2 of these are fractions bits (also referred to as S8.2 format).
+It is up to the user application during LLR generation to scale the LLR according to this
+optimal numerical representation. Any mis-scaled LLR would cause wireless performance degradation.
+
+The ``harq_buffer_size`` exposes the amount of dedicated DDR made available for the device operation.
+This is specific for accelerator non-integrated on the CPU (separate PCIe device) which may
+include separate on-card memory.
+
+Capabilities details for FFT function
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The total number of distinct time windows supported for the post-FFT point-wise multiplication is
+exposed as ``fft_windows_num``. The ``window_index`` provided for each cyclic shift in each
+``rte_bbdev_op_fft`` operation is expected to be limited to that size.
+
+The information related to the width of each of these pre-configured window is also exposed
+using the ``fft_window_width`` array. This provides the number of non-null samples used for each
+window index when scaling back the size to a reference of 1024 FFT. The actual shape size is
+effectively scaled up or down based on the dynamic size of the FFT operation being used.
+
+This allows to distinguish different version of the flexible pointwise windowing applied to the
+FFT and exposes this platform configuration to the application.
+
+Other optional capabilities exposed during device discovery
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The device status can be used to expose additional information related to the state of the
+platform notably based on its configuration state or related to error management
+(correctable or non).
+
+The queue topology exposed to the device is provided on top of the capabilities. This provides
+the number of queues available for the exposed bbdev device (the physical device may have more)
+for each operation as well as the different level of priority available for arbitration.
+These are based on the arrays and parameters ``num_queues``, ``queue_priority``,
+``max_num_queues``, ``queue_size_lim``.
 
 
 Operation Processing
diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
index d12e2e7fbc..925c78cae1 100644
--- a/lib/bbdev/rte_bbdev.h
+++ b/lib/bbdev/rte_bbdev.h
@@ -313,6 +313,8 @@ int
 rte_bbdev_stats_reset(uint16_t dev_id);
 
 /** Device information supplied by the device's driver */
+
+/* Structure rte_bbdev_driver_info 8< */
 struct rte_bbdev_driver_info {
 	/** Driver name */
 	const char *driver_name;
@@ -352,6 +354,7 @@ struct rte_bbdev_driver_info {
 	/** FFT windowing width for 2048 FFT - size defined in capability. */
 	uint16_t *fft_window_width;
 };
+/* >8 End of structure rte_bbdev_driver_info. */
 
 /** Macro used at end of bbdev PMD list */
 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
@@ -361,6 +364,8 @@ struct rte_bbdev_driver_info {
  * Device information structure used by an application to discover a devices
  * capabilities and current configuration
  */
+
+/* Structure rte_bbdev_info 8< */
 struct rte_bbdev_info {
 	int socket_id;  /**< NUMA socket that device is on */
 	const char *dev_name;  /**< Unique device name */
@@ -369,6 +374,7 @@ struct rte_bbdev_info {
 	bool started;  /**< Set if device is currently started */
 	struct rte_bbdev_driver_info drv;  /**< Info from device driver */
 };
+/* >8 End of structure rte_bbdev_info. */
 
 /**
  * Retrieve information about a device.
-- 
2.34.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] doc/guides: refer to generic bbdev test section
  2023-10-13 21:42 [PATCH v2 0/2] doc/guides: bbdev clean up Nicolas Chautru
  2023-10-13 21:42 ` [PATCH v2 1/2] doc: bbdev device discovery clarification Nicolas Chautru
@ 2023-10-13 21:42 ` Nicolas Chautru
  2023-10-23  9:23   ` Maxime Coquelin
  1 sibling, 1 reply; 5+ messages in thread
From: Nicolas Chautru @ 2023-10-13 21:42 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

Avoiding duplication among each PMD doc, now referring directly to the
relevant details section.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 doc/guides/bbdevs/acc100.rst        | 33 +++---------------------
 doc/guides/bbdevs/fpga_5gnr_fec.rst | 39 +++-------------------------
 doc/guides/bbdevs/fpga_lte_fec.rst  | 40 +++--------------------------
 doc/guides/bbdevs/la12xx.rst        | 32 +++--------------------
 doc/guides/bbdevs/vrb1.rst          | 36 +++-----------------------
 doc/guides/bbdevs/vrb2.rst          | 36 +++-----------------------
 doc/guides/tools/testbbdev.rst      |  2 ++
 7 files changed, 22 insertions(+), 196 deletions(-)

diff --git a/doc/guides/bbdevs/acc100.rst b/doc/guides/bbdevs/acc100.rst
index 8a275dcdd4..b9443adf4e 100644
--- a/doc/guides/bbdevs/acc100.rst
+++ b/doc/guides/bbdevs/acc100.rst
@@ -190,37 +190,10 @@ Test Application
 ----------------
 
 BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
-the functionality of the device 5G/4G FEC encode and decode, depending on the device's
-capabilities. The test application is located under app->test-bbdev folder and has the
-following options:
+the functionality of the device, depending on the device's capabilities.
 
-.. code-block:: console
-
-  "-p", "--testapp-path": specifies path to the bbdev test app.
-  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
-  "-t", "--timeout"	: Timeout in seconds (default=300).
-  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
-  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-bbdev/test_vectors/bbdev_null.data).
-  "-n", "--num-ops"	: Number of operations to process on device (default=32).
-  "-b", "--burst-size"	: Operations enqueue/dequeue burst size (default=32).
-  "-s", "--snr"		: SNR in dB used when generating LLRs for bler tests.
-  "-s", "--iter_max"	: Number of iterations for LDPC decoder.
-  "-l", "--num-lcores"	: Number of lcores to run (default=16).
-  "-i", "--init-device" : Initialise PF device with default values.
-
-
-To execute the test application tool using simple decode or encode data,
-type one of the following:
-
-.. code-block:: console
-
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_dec_default.data
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_enc_default.data
-
-
-The test application ``test-bbdev.py``, supports the ability to configure the PF device with
-a default set of values, if the "-i" or "- -init-device" option is included. The default values
-are defined in test_bbdev_perf.c.
+For more details on how to use the test application,
+see :ref:`test_bbdev_application`.
 
 
 Test Vectors
diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst b/doc/guides/bbdevs/fpga_5gnr_fec.rst
index 9d71585e9e..84340b18f0 100644
--- a/doc/guides/bbdevs/fpga_5gnr_fec.rst
+++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst
@@ -227,43 +227,10 @@ Test Application
 ----------------
 
 BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
-the functionality of FPGA 5GNR FEC encode and decode, depending on the device's
-capabilities. The test application is located under app->test-bbdev folder and has the
-following options:
+the functionality of the device, depending on the device's capabilities.
 
-.. code-block:: console
-
-  "-p", "--testapp-path": specifies path to the bbdev test app.
-  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
-  "-t", "--timeout"	: Timeout in seconds (default=300).
-  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
-  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-bbdev/test_vectors/bbdev_null.data).
-  "-n", "--num-ops"	: Number of operations to process on device (default=32).
-  "-b", "--burst-size"	: Operations enqueue/dequeue burst size (default=32).
-  "-l", "--num-lcores"	: Number of lcores to run (default=16).
-  "-i", "--init-device" : Initialise PF device with default values.
-
-
-To execute the test application tool using simple decode or encode data,
-type one of the following:
-
-.. code-block:: console
-
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_dec_default.data
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_enc_default.data
-
-
-The test application ``test-bbdev.py``, supports the ability to configure the PF device with
-a default set of values, if the "-i" or "- -init-device" option is included. The default values
-are defined in test_bbdev_perf.c as:
-
-- VF_UL_QUEUE_VALUE 4
-- VF_DL_QUEUE_VALUE 4
-- UL_BANDWIDTH 3
-- DL_BANDWIDTH 3
-- UL_LOAD_BALANCE 128
-- DL_LOAD_BALANCE 128
-- FLR_TIMEOUT 610
+For more details on how to use the test application,
+see :ref:`test_bbdev_application`.
 
 
 Test Vectors
diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst
index c3379c24e3..5b2029c864 100644
--- a/doc/guides/bbdevs/fpga_lte_fec.rst
+++ b/doc/guides/bbdevs/fpga_lte_fec.rst
@@ -226,44 +226,10 @@ Test Application
 ----------------
 
 BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
-the functionality of FPGA LTE FEC turbo encode and turbo decode, depending on the device's
-capabilities. The test application is located under app->test-bbdev folder and has the
-following options:
-
-.. code-block:: console
-
-  "-p", "--testapp-path": specifies path to the bbdev test app.
-  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
-  "-t", "--timeout"	: Timeout in seconds (default=300).
-  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
-  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-bbdev/test_vectors/bbdev_null.data).
-  "-n", "--num-ops"	: Number of operations to process on device (default=32).
-  "-b", "--burst-size"	: Operations enqueue/dequeue burst size (default=32).
-  "-l", "--num-lcores"	: Number of lcores to run (default=16).
-  "-i", "--init-device" : Initialise PF device with default values.
-
-
-To execute the test application tool using simple turbo decode or turbo encode data,
-type one of the following:
-
-.. code-block:: console
-
-  ./test-bbdev.py -c validation -n 64 -b 8 -v ./turbo_dec_default.data
-  ./test-bbdev.py -c validation -n 64 -b 8 -v ./turbo_enc_default.data
-
-
-The test application ``test-bbdev.py``, supports the ability to configure the PF device with
-a default set of values, if the "-i" or "- -init-device" option is included. The default values
-are defined in test_bbdev_perf.c as:
-
-- VF_UL_QUEUE_VALUE 4
-- VF_DL_QUEUE_VALUE 4
-- UL_BANDWIDTH 3
-- DL_BANDWIDTH 3
-- UL_LOAD_BALANCE 128
-- DL_LOAD_BALANCE 128
-- FLR_TIMEOUT 610
+the functionality of the device, depending on the device's capabilities.
 
+For more details on how to use the test application,
+see :ref:`test_bbdev_application`.
 
 Test Vectors
 ~~~~~~~~~~~~
diff --git a/doc/guides/bbdevs/la12xx.rst b/doc/guides/bbdevs/la12xx.rst
index 5cc5d46921..9df4a39725 100644
--- a/doc/guides/bbdevs/la12xx.rst
+++ b/doc/guides/bbdevs/la12xx.rst
@@ -83,36 +83,10 @@ Test Application
 ----------------
 
 BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
-the functionality of LA12xx for FEC encode and decode, depending on the device
-capabilities. The test application is located under app->test-bbdev folder and has the
-following options:
+the functionality of the device, depending on the device's capabilities.
 
-.. code-block:: console
-
-  "-p", "--testapp-path": specifies path to the bbdev test app.
-  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
-  "-t", "--timeout"	: Timeout in seconds (default=300).
-  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
-  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-bbdev/test_vectors/bbdev_null.data).
-  "-n", "--num-ops"	: Number of operations to process on device (default=32).
-  "-b", "--burst-size"	: Operations enqueue/dequeue burst size (default=32).
-  "-s", "--snr"		: SNR in dB used when generating LLRs for bler tests.
-  "-s", "--iter_max"	: Number of iterations for LDPC decoder.
-  "-l", "--num-lcores"	: Number of lcores to run (default=16).
-  "-i", "--init-device" : Initialise PF device with default values.
-
-
-To execute the test application tool using simple decode or encode data,
-type one of the following:
-
-.. code-block:: console
-
-  ./test-bbdev.py -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation -n 64 -b 1 -v ./ldpc_dec_default.data
-  ./test-bbdev.py -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation -n 64 -b 1 -v ./ldpc_enc_default.data
-
-The test application ``test-bbdev.py``, supports the ability to configure the PF device with
-a default set of values, if the "-i" or "- -init-device" option is included. The default values
-are defined in test_bbdev_perf.c.
+For more details on how to use the test application,
+see :ref:`test_bbdev_application`.
 
 
 Test Vectors
diff --git a/doc/guides/bbdevs/vrb1.rst b/doc/guides/bbdevs/vrb1.rst
index fdefb20651..776b9e69ac 100644
--- a/doc/guides/bbdevs/vrb1.rst
+++ b/doc/guides/bbdevs/vrb1.rst
@@ -192,39 +192,11 @@ which sets up the parameters defined in the compatible ``acc200_conf`` structure
 Test Application
 ----------------
 
-The bbdev class is provided with a test application, ``test-bbdev.py``
-and range of test data for testing the functionality of the device,
-depending on the device's capabilities.
-The test application is located under app/test-bbdev folder
-and has the following options:
+BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
+the functionality of the device, depending on the device's capabilities.
 
-.. code-block:: console
-
-   "-p", "--testapp-path": specifies path to the bbdev test app.
-   "-e", "--eal-params": EAL arguments which are passed to the test app.
-   "-t", "--timeout": Timeout in seconds (default=300).
-   "-c", "--test-cases": Defines test cases to run. Run all if not specified.
-   "-v", "--test-vector": Test vector path.
-   "-n", "--num-ops": Number of operations to process on device (default=32).
-   "-b", "--burst-size": Operations enqueue/dequeue burst size (default=32).
-   "-s", "--snr": SNR in dB used when generating LLRs for bler tests.
-   "-s", "--iter_max": Number of iterations for LDPC decoder.
-   "-l", "--num-lcores": Number of lcores to run (default=16).
-   "-i", "--init-device": Initialise PF device with default values.
-
-
-To execute the test application tool using simple decode or encode data,
-type one of the following:
-
-.. code-block:: console
-
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_dec_default.data
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_enc_default.data
-
-
-The test application ``test-bbdev.py``, supports the ability to configure the
-PF device with a default set of values, if the "-i" or "- -init-device" option
-is included. The default values are defined in test_bbdev_perf.c.
+For more details on how to use the test application,
+see :ref:`test_bbdev_application`.
 
 
 Test Vectors
diff --git a/doc/guides/bbdevs/vrb2.rst b/doc/guides/bbdevs/vrb2.rst
index 2a30002e05..12b7bf6e64 100644
--- a/doc/guides/bbdevs/vrb2.rst
+++ b/doc/guides/bbdevs/vrb2.rst
@@ -141,39 +141,11 @@ which sets up the parameters defined in the compatible ``rte_acc_conf`` structur
 Test Application
 ----------------
 
-The bbdev class is provided with a test application, ``test-bbdev.py``
-and range of test data for testing the functionality of the device,
-depending on the device's capabilities.
-The test application is located under app/test-bbdev folder
-and has the following options:
+BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
+the functionality of the device, depending on the device's capabilities.
 
-.. code-block:: console
-
-   "-p", "--testapp-path": specifies path to the bbdev test app.
-   "-e", "--eal-params": EAL arguments which are passed to the test app.
-   "-t", "--timeout": Timeout in seconds (default=300).
-   "-c", "--test-cases": Defines test cases to run. Run all if not specified.
-   "-v", "--test-vector": Test vector path.
-   "-n", "--num-ops": Number of operations to process on device (default=32).
-   "-b", "--burst-size": Operations enqueue/dequeue burst size (default=32).
-   "-s", "--snr": SNR in dB used when generating LLRs for bler tests.
-   "-s", "--iter_max": Number of iterations for LDPC decoder.
-   "-l", "--num-lcores": Number of lcores to run (default=16).
-   "-i", "--init-device": Initialise PF device with default values.
-
-
-To execute the test application tool using simple decode or encode data,
-type one of the following:
-
-.. code-block:: console
-
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_dec_default.data
-  ./test-bbdev.py -c validation -n 64 -b 1 -v ./ldpc_enc_default.data
-
-
-The test application ``test-bbdev.py``, supports the ability to configure the
-PF device with a default set of values, if the "-i" or "- -init-device" option
-is included. The default values are defined in test_bbdev_perf.c.
+For more details on how to use the test application,
+see :ref:`test_bbdev_application`.
 
 
 Test Vectors
diff --git a/doc/guides/tools/testbbdev.rst b/doc/guides/tools/testbbdev.rst
index 54a9c44dc3..ddb8d787be 100644
--- a/doc/guides/tools/testbbdev.rst
+++ b/doc/guides/tools/testbbdev.rst
@@ -1,6 +1,8 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2017 Intel Corporation
 
+.. _test_bbdev_application:
+
 dpdk-test-bbdev Application
 ===========================
 
-- 
2.34.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] doc: bbdev device discovery clarification
  2023-10-13 21:42 ` [PATCH v2 1/2] doc: bbdev device discovery clarification Nicolas Chautru
@ 2023-10-23  9:21   ` Maxime Coquelin
  0 siblings, 0 replies; 5+ messages in thread
From: Maxime Coquelin @ 2023-10-23  9:21 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: hemant.agrawal, david.marchand, hernan.vargas



On 10/13/23 23:42, Nicolas Chautru wrote:
> Adding more context and information related the data exposed
> through device discovery notably for FEC and FFT operations.
> 
> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
>   doc/guides/prog_guide/bbdev.rst | 60 ++++++++++++++++++++++++++++-----
>   lib/bbdev/rte_bbdev.h           |  6 ++++
>   2 files changed, 57 insertions(+), 9 deletions(-)
> 
> diff --git a/doc/guides/prog_guide/bbdev.rst b/doc/guides/prog_guide/bbdev.rst
> index c43e478eda..01a8a6d79b 100644
> --- a/doc/guides/prog_guide/bbdev.rst
> +++ b/doc/guides/prog_guide/bbdev.rst
> @@ -261,16 +261,58 @@ information:
>     structure, this is where capabilities reside along with other specifics like:
>     maximum queue sizes and priority level.
>   
> -.. code-block:: c
> +.. literalinclude:: ../../../lib/bbdev/rte_bbdev.h
> +   :language: c
> +   :start-after: Structure rte_bbdev_driver_info 8<
> +   :end-before: >8 End of structure rte_bbdev_driver_info.
>   
> -    struct rte_bbdev_info {
> -        int socket_id;
> -        const char *dev_name;
> -        const struct rte_device *device;
> -        uint16_t num_queues;
> -        bool started;
> -        struct rte_bbdev_driver_info drv;
> -    };
> +.. literalinclude:: ../../../lib/bbdev/rte_bbdev.h
> +   :language: c
> +   :start-after: Structure rte_bbdev_info 8<
> +   :end-before: >8 End of structure rte_bbdev_info.
> +
> +Capabilities details for LDPC Decoder
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +On top of the ``RTE_BBDEV_LDPC_<*>`` capabilities the device also exposes the LLR numerical
> +representation expected by the decoder as a fractional fixed-point representation.
> +For instance, when the representation (``llr_size``, ``llr_decimals``) = (8, 2) respectively,
> +this means that each input LLR in the data provided by the application must be computed as 8 total
> +bits (including sign bit) where 2 of these are fractions bits (also referred to as S8.2 format).
> +It is up to the user application during LLR generation to scale the LLR according to this
> +optimal numerical representation. Any mis-scaled LLR would cause wireless performance degradation.
> +
> +The ``harq_buffer_size`` exposes the amount of dedicated DDR made available for the device operation.
> +This is specific for accelerator non-integrated on the CPU (separate PCIe device) which may
> +include separate on-card memory.
> +
> +Capabilities details for FFT function
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +The total number of distinct time windows supported for the post-FFT point-wise multiplication is
> +exposed as ``fft_windows_num``. The ``window_index`` provided for each cyclic shift in each
> +``rte_bbdev_op_fft`` operation is expected to be limited to that size.
> +
> +The information related to the width of each of these pre-configured window is also exposed
> +using the ``fft_window_width`` array. This provides the number of non-null samples used for each
> +window index when scaling back the size to a reference of 1024 FFT. The actual shape size is
> +effectively scaled up or down based on the dynamic size of the FFT operation being used.
> +
> +This allows to distinguish different version of the flexible pointwise windowing applied to the
> +FFT and exposes this platform configuration to the application.
> +
> +Other optional capabilities exposed during device discovery
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +The device status can be used to expose additional information related to the state of the
> +platform notably based on its configuration state or related to error management
> +(correctable or non).
> +
> +The queue topology exposed to the device is provided on top of the capabilities. This provides
> +the number of queues available for the exposed bbdev device (the physical device may have more)
> +for each operation as well as the different level of priority available for arbitration.
> +These are based on the arrays and parameters ``num_queues``, ``queue_priority``,
> +``max_num_queues``, ``queue_size_lim``.
>   
>   
>   Operation Processing
> diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
> index d12e2e7fbc..925c78cae1 100644
> --- a/lib/bbdev/rte_bbdev.h
> +++ b/lib/bbdev/rte_bbdev.h
> @@ -313,6 +313,8 @@ int
>   rte_bbdev_stats_reset(uint16_t dev_id);
>   
>   /** Device information supplied by the device's driver */
> +
> +/* Structure rte_bbdev_driver_info 8< */
>   struct rte_bbdev_driver_info {
>   	/** Driver name */
>   	const char *driver_name;
> @@ -352,6 +354,7 @@ struct rte_bbdev_driver_info {
>   	/** FFT windowing width for 2048 FFT - size defined in capability. */
>   	uint16_t *fft_window_width;
>   };
> +/* >8 End of structure rte_bbdev_driver_info. */
>   
>   /** Macro used at end of bbdev PMD list */
>   #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
> @@ -361,6 +364,8 @@ struct rte_bbdev_driver_info {
>    * Device information structure used by an application to discover a devices
>    * capabilities and current configuration
>    */
> +
> +/* Structure rte_bbdev_info 8< */
>   struct rte_bbdev_info {
>   	int socket_id;  /**< NUMA socket that device is on */
>   	const char *dev_name;  /**< Unique device name */
> @@ -369,6 +374,7 @@ struct rte_bbdev_info {
>   	bool started;  /**< Set if device is currently started */
>   	struct rte_bbdev_driver_info drv;  /**< Info from device driver */
>   };
> +/* >8 End of structure rte_bbdev_info. */
>   
>   /**
>    * Retrieve information about a device.

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 2/2] doc/guides: refer to generic bbdev test section
  2023-10-13 21:42 ` [PATCH v2 2/2] doc/guides: refer to generic bbdev test section Nicolas Chautru
@ 2023-10-23  9:23   ` Maxime Coquelin
  0 siblings, 0 replies; 5+ messages in thread
From: Maxime Coquelin @ 2023-10-23  9:23 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: hemant.agrawal, david.marchand, hernan.vargas



On 10/13/23 23:42, Nicolas Chautru wrote:
> Avoiding duplication among each PMD doc, now referring directly to the
> relevant details section.
> 
> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
>   doc/guides/bbdevs/acc100.rst        | 33 +++---------------------
>   doc/guides/bbdevs/fpga_5gnr_fec.rst | 39 +++-------------------------
>   doc/guides/bbdevs/fpga_lte_fec.rst  | 40 +++--------------------------
>   doc/guides/bbdevs/la12xx.rst        | 32 +++--------------------
>   doc/guides/bbdevs/vrb1.rst          | 36 +++-----------------------
>   doc/guides/bbdevs/vrb2.rst          | 36 +++-----------------------
>   doc/guides/tools/testbbdev.rst      |  2 ++
>   7 files changed, 22 insertions(+), 196 deletions(-)
> 

Thanks for removing these duplications.

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Maxime


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-10-23  9:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-13 21:42 [PATCH v2 0/2] doc/guides: bbdev clean up Nicolas Chautru
2023-10-13 21:42 ` [PATCH v2 1/2] doc: bbdev device discovery clarification Nicolas Chautru
2023-10-23  9:21   ` Maxime Coquelin
2023-10-13 21:42 ` [PATCH v2 2/2] doc/guides: refer to generic bbdev test section Nicolas Chautru
2023-10-23  9:23   ` Maxime Coquelin

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).