From 4def9a8281de935aa2c8918912b40e2e9e39a2c9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Morten=20Br=C3=B8rup?= Date: Mon, 14 Sep 2020 13:05:11 +0200 Subject: [PATCH] ethdev: document Rx packet number requirement for vector Rx MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Updated description of rte_eth_rx_burst() to reflect what drivers, when using vector instructions, expect from nb_pkts. Also discussed on the mailing list here: http://inbox.dpdk.org/dev/98CBD80474FA8B44BF855DF32C47DC35C61257@smartserver.smartshare.dk/ Signed-off-by: Morten Brørup Acked-by: Ajit Khaparde Acked-by: Bruce Richardson --- lib/librte_ethdev/rte_ethdev.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d9679a0e1c..69fc9733ea 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -4803,6 +4803,10 @@ int rte_eth_dev_hairpin_capability_get(uint16_t port_id, * burst-oriented optimizations in both synchronous and asynchronous * packet processing environments with no overhead in both cases. * + * @note + * Some drivers using vector instructions require that *nb_pkts* is + * divisible by 4 or 8, depending on the driver implementation. + * * The rte_eth_rx_burst() function does not provide any error * notification to avoid the corresponding overhead. As a hint, the * upper-level application might check the status of the device link once @@ -4819,6 +4823,7 @@ int rte_eth_dev_hairpin_capability_get(uint16_t port_id, * must be large enough to store *nb_pkts* pointers in it. * @param nb_pkts * The maximum number of packets to retrieve. + * The value must be divisible by 8 in order to work with any driver. * @return * The number of packets actually retrieved, which is the number * of pointers to *rte_mbuf* structures effectively supplied to the -- 2.20.1