* [dpdk-dev] [PATCH] doc: add information for Rx burst functions in mlx5
@ 2020-11-22 12:35 Asaf Penso
2020-11-23 7:17 ` Slava Ovsiienko
2020-11-23 7:56 ` [dpdk-dev] [PATCH v2] " Asaf Penso
0 siblings, 2 replies; 8+ messages in thread
From: Asaf Penso @ 2020-11-22 12:35 UTC (permalink / raw)
To: dev; +Cc: thomas, viacheslavo, matan, rasland
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: add information for Rx burst functions in mlx5
2020-11-22 12:35 [dpdk-dev] [PATCH] doc: add information for Rx burst functions in mlx5 Asaf Penso
@ 2020-11-23 7:17 ` Slava Ovsiienko
2020-11-23 7:56 ` [dpdk-dev] [PATCH v2] " Asaf Penso
1 sibling, 0 replies; 8+ messages in thread
From: Slava Ovsiienko @ 2020-11-23 7:17 UTC (permalink / raw)
To: Asaf Penso, dev
Cc: NBU-Contact-Thomas Monjalon, Matan Azrad, Raslan Darawsheh
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v2] doc: add information for Rx burst functions in mlx5
2020-11-22 12:35 [dpdk-dev] [PATCH] doc: add information for Rx burst functions in mlx5 Asaf Penso
2020-11-23 7:17 ` Slava Ovsiienko
@ 2020-11-23 7:56 ` Asaf Penso
2020-11-23 8:04 ` [dpdk-dev] [PATCH v3] " Asaf Penso
1 sibling, 1 reply; 8+ messages in thread
From: Asaf Penso @ 2020-11-23 7:56 UTC (permalink / raw)
To: dev; +Cc: thomas, viacheslavo, matan, rasland
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>
---
v2: for mprq added note for rxqs_min_mprq
---
doc/guides/nics/mlx5.rst | 57 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 205e5ba..46cfc3f 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1645,3 +1645,60 @@ 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
+ - RX queues number should be >= rxqs_min_mprq
+ 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
+ - RX queues number should be >= rxqs_min_mprq
+ 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.
--
1.8.3.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v3] doc: add information for Rx burst functions in mlx5
2020-11-23 7:56 ` [dpdk-dev] [PATCH v2] " Asaf Penso
@ 2020-11-23 8:04 ` Asaf Penso
2020-11-23 8:14 ` Slava Ovsiienko
2020-11-24 7:44 ` [dpdk-dev] [PATCH v4] " Asaf Penso
0 siblings, 2 replies; 8+ messages in thread
From: Asaf Penso @ 2020-11-23 8:04 UTC (permalink / raw)
To: dev; +Cc: thomas, viacheslavo, matan, rasland
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>
---
v3: checkpatch cleanup
v2: for mprq added note for rxqs_min_mprq
---
doc/guides/nics/mlx5.rst | 57 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 205e5ba..758351a 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1645,3 +1645,60 @@ 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
+ - RX queues number should be >= rxqs_min_mprq
+ 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
+ - RX queues number should be >= rxqs_min_mprq
+ 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.
--
1.8.3.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v3] doc: add information for Rx burst functions in mlx5
2020-11-23 8:04 ` [dpdk-dev] [PATCH v3] " Asaf Penso
@ 2020-11-23 8:14 ` Slava Ovsiienko
2020-11-24 7:44 ` [dpdk-dev] [PATCH v4] " Asaf Penso
1 sibling, 0 replies; 8+ messages in thread
From: Slava Ovsiienko @ 2020-11-23 8:14 UTC (permalink / raw)
To: Asaf Penso, dev
Cc: NBU-Contact-Thomas Monjalon, Matan Azrad, Raslan Darawsheh
> -----Original Message-----
> From: Asaf Penso <asafp@nvidia.com>
> Sent: Monday, November 23, 2020 10:05
> 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 v3] 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>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v4] doc: add information for Rx burst functions in mlx5
2020-11-23 8:04 ` [dpdk-dev] [PATCH v3] " Asaf Penso
2020-11-23 8:14 ` Slava Ovsiienko
@ 2020-11-24 7:44 ` Asaf Penso
2020-11-26 23:55 ` [dpdk-dev] [PATCH v5] doc: add Rx functions limitations in mlx5 guide Thomas Monjalon
1 sibling, 1 reply; 8+ messages in thread
From: Asaf Penso @ 2020-11-24 7:44 UTC (permalink / raw)
To: dev; +Cc: thomas, viacheslavo, matan, rasland
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>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
v4: update the fallback for mprq burst functions
v3: checkpatch cleanup
v2: for mprq added note for rxqs_min_mprq
---
doc/guides/nics/mlx5.rst | 59 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 205e5ba..c5a0fee 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1645,3 +1645,62 @@ 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
+ - RX queues number should be >= rxqs_min_mprq
+ 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
+ Fallback - In scatter fallback to rx_burst
+ 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
+ - RX queues number should be >= rxqs_min_mprq
+ 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 fallback to rx_burst.
+ In 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.
--
1.8.3.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v5] doc: add Rx functions limitations in mlx5 guide
2020-11-24 7:44 ` [dpdk-dev] [PATCH v4] " Asaf Penso
@ 2020-11-26 23:55 ` Thomas Monjalon
2020-11-27 0:04 ` Thomas Monjalon
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2020-11-26 23:55 UTC (permalink / raw)
To: dev; +Cc: Asaf Penso, Matan Azrad, Shahaf Shuler, Viacheslav Ovsiienko
From: Asaf Penso <asafp@nvidia.com>
The mlx5 PMD supports various Rx burst functions.
Each function is enabled differently and supports different features.
Signed-off-by: Asaf Penso <asafp@nvidia.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v5: fix formatting by using a table
---
doc/guides/nics/mlx5.rst | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index e96aca21eb..6858e81f72 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1345,6 +1345,29 @@ Performance tuning
- Configure per-lcore cache when creating Mempools for packet buffer.
- Refrain from dynamically allocating/freeing memory in run-time.
+Rx burst functions
+------------------
+
+There are multiple Rx burst functions with different advantages and limitations.
+
+.. table:: Rx burst functions
+
+ +-------------------+------------------------+---------+-----------------+------+-------+
+ || Function Name || Enabler || Scatter|| Error Recovery || CQE || Large|
+ | | | | || comp|| MTU |
+ +===================+========================+=========+=================+======+=======+
+ | rx_burst | rx_vec_en=0 | Yes | Yes | Yes | Yes |
+ +-------------------+------------------------+---------+-----------------+------+-------+
+ | rx_burst_vec | rx_vec_en=1 (default) | No | if CQE comp off | Yes | No |
+ +-------------------+------------------------+---------+-----------------+------+-------+
+ | rx_burst_mprq || mprq_en=1 | No | Yes | Yes | Yes |
+ | || RxQs >= rxqs_min_mprq | | | | |
+ +-------------------+------------------------+---------+-----------------+------+-------+
+ | rx_burst_mprq_vec || rx_vec_en=1 (default) | No | if CQE comp off | Yes | Yes |
+ | || mprq_en=1 | | | | |
+ | || RxQs >= rxqs_min_mprq | | | | |
+ +-------------------+------------------------+---------+-----------------+------+-------+
+
.. _mlx5_offloads_support:
Supported hardware offloads
--
2.28.0
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-11-27 0:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-22 12:35 [dpdk-dev] [PATCH] doc: add information for Rx burst functions in mlx5 Asaf Penso
2020-11-23 7:17 ` Slava Ovsiienko
2020-11-23 7:56 ` [dpdk-dev] [PATCH v2] " Asaf Penso
2020-11-23 8:04 ` [dpdk-dev] [PATCH v3] " Asaf Penso
2020-11-23 8:14 ` Slava Ovsiienko
2020-11-24 7:44 ` [dpdk-dev] [PATCH v4] " Asaf Penso
2020-11-26 23:55 ` [dpdk-dev] [PATCH v5] doc: add Rx functions limitations in mlx5 guide Thomas Monjalon
2020-11-27 0:04 ` Thomas Monjalon
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).