net/mlx5: revert DevX API preferred for Rx objects

Message ID 0617122502f0d9fc8e7513df4b2d8156efe03ec8.1589977874.git.dekelp@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/mlx5: revert DevX API preferred for Rx objects |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/travis-robot success Travis build: passed
ci/Intel-compilation fail Compilation issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing fail Testing issues

Commit Message

Dekel Peled May 20, 2020, 12:37 p.m. UTC
  Recent patch [1] exposed a minor performance issue.
In order to properly test it, this patch reverts commit [1].

[1] commit d237d22fbe62 ("net/mlx5: prefer DevX API to create Rx objects")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 drivers/net/mlx5/mlx5_trigger.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
  

Comments

Ferruh Yigit May 21, 2020, 4:28 p.m. UTC | #1
On 5/20/2020 1:37 PM, Dekel Peled wrote:
> Recent patch [1] exposed a minor performance issue.
> In order to properly test it, this patch reverts commit [1].
> 
> [1] commit d237d22fbe62 ("net/mlx5: prefer DevX API to create Rx objects")
> 
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> Acked-by: Matan Azrad <matan@mellanox.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 8d53648..8106598 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -107,11 +107,16 @@ 
 	struct mlx5_priv *priv = dev->data->dev_private;
 	unsigned int i;
 	int ret = 0;
-	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;
-
+	enum mlx5_rxq_obj_type obj_type = MLX5_RXQ_OBJ_TYPE_IBV;
+	struct mlx5_rxq_data *rxq = NULL;
+
+	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. */