From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 17C15A04B1;
	Tue, 24 Nov 2020 08:44:26 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 5E90CC910;
	Tue, 24 Nov 2020 08:44:24 +0100 (CET)
Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])
 by dpdk.org (Postfix) with ESMTP id 5E88FC90C
 for <dev@dpdk.org>; Tue, 24 Nov 2020 08:44:22 +0100 (CET)
Received: from Internal Mail-Server by MTLPINE1 (envelope-from
 asafp@nvidia.com) with SMTP; 24 Nov 2020 09:44:18 +0200
Received: from nvidia.com (pegasus07.mtr.labs.mlnx [10.210.16.112])
 by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 0AO7iIUU032747;
 Tue, 24 Nov 2020 09:44:18 +0200
From: Asaf Penso <asafp@nvidia.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, viacheslavo@nvidia.com, matan@nvidia.com,
 rasland@nvidia.com
Date: Tue, 24 Nov 2020 07:44:16 +0000
Message-Id: <1606203856-5736-1-git-send-email-asafp@nvidia.com>
X-Mailer: git-send-email 1.8.3.1
In-Reply-To: <1606118685-32134-1-git-send-email-asafp@nvidia.com>
References: <1606118685-32134-1-git-send-email-asafp@nvidia.com>
Subject: [dpdk-dev] [PATCH v4] doc: add information for Rx burst functions
	in mlx5
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

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