[ovs-dev] [dpdk-howl PATCH v5 2/2] netdev-dpdk: Set scatter based on capabilities

Eelco Chaudron echaudro at redhat.com
Fri Oct 12 09:24:33 UTC 2018



On 10 Oct 2018, at 18:14, Ophir Munk wrote:

> Before this commit setting scatter offload was based on checking
> net_nfp device.
> Since DPDK 17.11 more PMD drivers are reporting offload
> capabilities. Therefore this commit removes the specific check
> against net_nfp device and replaces it with a generic check of
> device capabilities before setting the scatter offload.
>
> Signed-off-by: Ophir Munk <ophirmu at mellanox.com>
> ---
>
> v1-v4
> This patch was not included in version v1-v4 of the series
>
> v5
> Initial version
>
>  lib/netdev-dpdk.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 4dd0ec3..ecca276 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -367,6 +367,7 @@ struct ingress_policer {
>  enum dpdk_hw_ol_features {
>      NETDEV_RX_CHECKSUM_OFFLOAD = 1 << 0,
>      NETDEV_RX_HW_CRC_STRIP = 1 << 1,
> +    NETDEV_RX_HW_SCATTER = 1 << 2
>  };
>
>  /*
> @@ -894,13 +895,11 @@ dpdk_eth_dev_port_config(struct netdev_dpdk 
> *dev, int n_rxq, int n_txq)
>      rte_eth_dev_info_get(dev->port_id, &info);
>
>      /* As of DPDK 17.11.1 a few PMDs require to explicitly enable
> -     * scatter to support jumbo RX. Checking the offload capabilities
> -     * is not an option as PMDs are not required yet to report
> -     * them. The only reliable info is the driver name and knowledge
> -     * (testing or code review). Listing all such PMDs feels harder
> -     * than highlighting the one known not to need scatter */
> +     * scatter to support jumbo RX.
> +     * Setting scatter for the device is done after checking for
> +     * scatter support in the device capabilites. */
>      if (dev->mtu > ETHER_MTU) {
> -        if (strncmp(info.driver_name, "net_nfp", 7)) {
> +        if (dev->hw_ol_features & NETDEV_RX_HW_SCATTER) {
>              conf.rxmode.offloads |= DEV_RX_OFFLOAD_SCATTER;
>          }
>      }
> @@ -1035,6 +1034,13 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
>          dev->hw_ol_features |= NETDEV_RX_CHECKSUM_OFFLOAD;
>      }
>
> +    if (info.rx_offload_capa & DEV_RX_OFFLOAD_SCATTER) {
> +        dev->hw_ol_features |= NETDEV_RX_HW_SCATTER;
> +    } else {
> +        /* Do not warn on lack of scatter support */
> +        dev->hw_ol_features &= ~NETDEV_RX_HW_SCATTER;

Don’t think we need to clear it explicitly, none of the other 
capabilities do this.
For the rest this patch look good to me.

> +    }
> +
>      n_rxq = MIN(info.max_rx_queues, dev->up.n_rxq);
>      n_txq = MIN(info.max_tx_queues, dev->up.n_txq);
>
> -- 
> 1.8.3.1
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list