[dpdk-dev] [PATCH] ethdev: rte_eth_rx_burst() nb_pkts requirements
Bruce Richardson
bruce.richardson at intel.com
Mon Sep 14 13:26:59 CEST 2020
On Mon, Sep 14, 2020 at 01:05:11PM +0200, Morten Brørup wrote:
> 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 <mb at smartsharesystems.com>
> ---
> 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 70295d7ab..41f8ba4ef 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -4469,6 +4469,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.
> + *
Not technically true, in that the drivers will round the value down to the
nearest multiple of 4 or 8. So how about rewording as:
"Some drivers using vector instructions may round the *nb_pkts* driver to
a multiple of 4 or 8 depending upon 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
> @@ -4485,6 +4489,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.
Similarly here, I think it's better to state that it should be at least 8,
and any values not divisible by 8 may be rounded down.
> * @return
> * The number of packets actually retrieved, which is the number
> * of pointers to *rte_mbuf* structures effectively supplied to the
> --
> 2.17.1
>
More information about the dev
mailing list