]> git.droids-corp.org - dpdk.git/commitdiff
net/mlx5: prefer DevX API to create Rx objects
authorDekel Peled <dekelp@mellanox.com>
Sun, 10 May 2020 11:18:32 +0000 (14:18 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 18 May 2020 18:35:56 +0000 (20:35 +0200)
Currently, DevX API is used to create Rx objects (RQ, RQT, TIR) only
if LRO or hairpin features are enabled on this RQ.

This patch uses DevX API by default, if DevX is supported and can be
used. Otherwise, Verbs API is used.

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
drivers/net/mlx5/mlx5_trigger.c

index feb9154199cb1d44e7a9efa11b02d8eba6a65e11..8d53648fa20c2d43181aa716f9e7b039591508be 100644 (file)
@@ -107,17 +107,11 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
        struct mlx5_priv *priv = dev->data->dev_private;
        unsigned int i;
        int ret = 0;
-       enum mlx5_rxq_obj_type obj_type = MLX5_RXQ_OBJ_TYPE_IBV;
-       struct mlx5_rxq_data *rxq = NULL;
+       enum mlx5_rxq_obj_type obj_type =
+                       priv->config.dv_flow_en && priv->config.devx &&
+                       priv->config.dest_tir ?
+                       MLX5_RXQ_OBJ_TYPE_DEVX_RQ : MLX5_RXQ_OBJ_TYPE_IBV;
 
-       for (i = 0; i < priv->rxqs_n; ++i) {
-               rxq = (*priv->rxqs)[i];
-
-               if (rxq && rxq->lro) {
-                       obj_type =  MLX5_RXQ_OBJ_TYPE_DEVX_RQ;
-                       break;
-               }
-       }
        /* Allocate/reuse/resize mempool for Multi-Packet RQ. */
        if (mlx5_mprq_alloc_mp(dev)) {
                /* Should not release Rx queues but return immediately. */