doc: add information for Rx burst functions in mlx5

Message ID 1606048553-16127-1-git-send-email-asafp@nvidia.com (mailing list archive)
State Superseded, archived
Delegated to: Raslan Darawsheh
Headers
Series doc: add information for Rx burst functions in mlx5 |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues
ci/travis-robot warning Travis build: failed

Commit Message

Asaf Penso Nov. 22, 2020, 12:35 p.m. UTC
  mlx5 pmd supports various rx_burst functions.
Each function is enabled differently and supports different features.

Add more comprehensive information about each function.

Signed-off-by: Asaf Penso <asafp@nvidia.com>
---
 doc/guides/nics/mlx5.rst | 55 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
  

Comments

Slava Ovsiienko Nov. 23, 2020, 7:17 a.m. UTC | #1
Hi, Asaf

There is one more devargs to manage MPRQ enable: "rxqs_min_mprq".
This parameters defines the number of Rx queues limit to enable MPRQ.
If there is not enough Rx queues (below the limit) then MPRQ is disabled.
By default, "rxqs_min_mprq" is 12. I suppose we should mention this in
the list being added.

With best regards, Slava

> -----Original Message-----
> From: Asaf Penso <asafp@nvidia.com>
> Sent: Sunday, November 22, 2020 14:36
> To: dev@dpdk.org
> Cc: NBU-Contact-Thomas Monjalon <thomas@monjalon.net>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>; Raslan
> Darawsheh <rasland@nvidia.com>
> Subject: [PATCH] doc: add information for Rx burst functions in mlx5
> 
> mlx5 pmd supports various rx_burst functions.
> Each function is enabled differently and supports different features.
> 
> Add more comprehensive information about each function.
> 
> Signed-off-by: Asaf Penso <asafp@nvidia.com>
> ---
>  doc/guides/nics/mlx5.rst | 55
> ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index
> 205e5ba..8c1ce15 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -1645,3 +1645,58 @@ all flows with assistance of external tools.
>     .. code-block:: console
> 
>         mlx_steering_dump.py -f <output_file>
> +
> +RX burst functions
> +------------------
> +
> +This section describes the different rx_burst functions and provides an
> +elaborated information.
> +
> +#. Function name             - rx_burst
> +   How to enable             - rx_vec_en=0
> +   Scatter support           - Yes
> +   RX error recovery support - Yes
> +   CQE compression support   - Yes
> +   Large MTU support         - The maximal packet size should be set to be the
> +                               same as the MTU size. The mbuf size can be
> +                               according to the application needs since the
> +                               pmd can perform the scatter.
> +
> +#. Function name             - rx_burst_vec
> +   How to enable             - rx_vec_en=1 (default value)
> +   Scatter support           - No
> +   RX error recovery support - Supported only in case CQE compression is off
> +   CQE compression support   - Yes
> +   Large MTU support         - No. Scatter is not supported, so it means
> +                               that the mbuf must be with the same size of
> +                               the MTU. In this case, maximal packet size ==
> +                               mbuf size == MTU size
> +   Fallback                  - In scatter or LRO fallback to rx_burst
> +   Notes                     - Improves CPU utilization for single-core and
> +                               improves performance
> +
> +#. Function name             - rx_burst_mprq
> +   How to enable             - mprq_en=1
> +   Scatter support           - No
> +   RX error recovery support - Yes
> +   CQE compression support   - Yes
> +   Large MTU support         - Yes. Needs to be turned on by specifying the
> +                               stride size
> +   Notes                     - Saving PCI bandwidth and getting higher
> +                               performance, especially for small packets.
> +                               Used mainly for multi-core use cases.
> +                               Uses externally attached buffers only.
> +
> +#. Function name             - rx_burst_mprq_vec
> +   How to enable             - rx_vec_en=1 (default mode) and mprq_en=1
> +   Scatter support           - No
> +   RX error recovery support - Supported only in case CQE compression is off
> +   CQE compression support   - Yes
> +   Large MTU support         - Yes. Needs to be turned on by specifying the
> +                               stride size
> +   Fallback                  - In scatter or LRO fallback to rx_burst_mprq
> +   Notes                     - Improves CPU utilization of regular
> +                               rx_burst_mprq for multi-core and improves
> +                               performance.
> +                               Used mainly for multi-core use cases.
> +                               Uses externally attached buffers only.
> \ No newline at end of file
> --
> 1.8.3.1
  

Patch

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 205e5ba..8c1ce15 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1645,3 +1645,58 @@  all flows with assistance of external tools.
    .. code-block:: console
 
        mlx_steering_dump.py -f <output_file>
+
+RX burst functions
+------------------
+
+This section describes the different rx_burst functions and provides an
+elaborated information.
+
+#. Function name             - rx_burst
+   How to enable             - rx_vec_en=0
+   Scatter support           - Yes
+   RX error recovery support - Yes
+   CQE compression support   - Yes
+   Large MTU support         - The maximal packet size should be set to be the
+                               same as the MTU size. The mbuf size can be
+                               according to the application needs since the
+                               pmd can perform the scatter.
+
+#. Function name             - rx_burst_vec
+   How to enable             - rx_vec_en=1 (default value)
+   Scatter support           - No
+   RX error recovery support - Supported only in case CQE compression is off
+   CQE compression support   - Yes
+   Large MTU support         - No. Scatter is not supported, so it means
+                               that the mbuf must be with the same size of
+                               the MTU. In this case, maximal packet size ==
+                               mbuf size == MTU size
+   Fallback                  - In scatter or LRO fallback to rx_burst
+   Notes                     - Improves CPU utilization for single-core and
+                               improves performance
+
+#. Function name             - rx_burst_mprq
+   How to enable             - mprq_en=1
+   Scatter support           - No
+   RX error recovery support - Yes
+   CQE compression support   - Yes
+   Large MTU support         - Yes. Needs to be turned on by specifying the
+                               stride size
+   Notes                     - Saving PCI bandwidth and getting higher
+                               performance, especially for small packets.
+                               Used mainly for multi-core use cases.
+                               Uses externally attached buffers only.
+
+#. Function name             - rx_burst_mprq_vec
+   How to enable             - rx_vec_en=1 (default mode) and mprq_en=1
+   Scatter support           - No
+   RX error recovery support - Supported only in case CQE compression is off
+   CQE compression support   - Yes
+   Large MTU support         - Yes. Needs to be turned on by specifying the
+                               stride size
+   Fallback                  - In scatter or LRO fallback to rx_burst_mprq
+   Notes                     - Improves CPU utilization of regular
+                               rx_burst_mprq for multi-core and improves
+                               performance.
+                               Used mainly for multi-core use cases.
+                               Uses externally attached buffers only.
\ No newline at end of file