diff mbox series

[v2,03/20] net/mlx5: replace verbs priorities by flow

Message ID 3c8d9a28a2627c3bde7eaa1a059704c9cca50f1e.1530111623.git.nelio.laranjeiro@6wind.com (mailing list archive)
State Superseded, archived
Delegated to: Shahaf Shuler
Headers show
Series net/mlx5: flow rework | expand

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Nélio Laranjeiro June 27, 2018, 3:07 p.m. UTC
Previous work introduce verbs priorities, whereas the PMD is making
translation between Flow priority into Verbs.  Rename this to make more
sense on what the PMD has to translate.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
 drivers/net/mlx5/mlx5.c      | 15 ++++-----------
 drivers/net/mlx5/mlx5.h      |  4 ++--
 drivers/net/mlx5/mlx5_flow.c | 22 +++++++++++-----------
 3 files changed, 17 insertions(+), 24 deletions(-)

Comments

Yongseok Koh July 3, 2018, 1:40 a.m. UTC | #1
On Wed, Jun 27, 2018 at 05:07:35PM +0200, Nelio Laranjeiro wrote:
> Previous work introduce verbs priorities, whereas the PMD is making
> translation between Flow priority into Verbs.  Rename this to make more
> sense on what the PMD has to translate.
> 
> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> ---
Acked-by: Yongseok Koh <yskoh@mellanox.com>

Thanks
diff mbox series

Patch

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index aba6c1f9f..c3c8dffae 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -703,7 +703,6 @@  mlx5_dev_spawn_one(struct rte_device *dpdk_dev,
 	unsigned int tunnel_en = 0;
 	unsigned int mpls_en = 0;
 	unsigned int swp = 0;
-	unsigned int verb_priorities = 0;
 	unsigned int mprq = 0;
 	unsigned int mprq_min_stride_size_n = 0;
 	unsigned int mprq_max_stride_size_n = 0;
@@ -1100,16 +1099,10 @@  mlx5_dev_spawn_one(struct rte_device *dpdk_dev,
 	/* Store device configuration on private structure. */
 	priv->config = config;
 	/* Supported Verbs flow priority number detection. */
-	if (verb_priorities == 0) {
-		err = mlx5_verbs_max_prio(eth_dev);
-		if (err < 0) {
-			DRV_LOG(ERR, "port %u wrong Verbs flow priorities",
-				eth_dev->data->port_id);
-			goto error;
-		}
-		verb_priorities = err;
-	}
-	priv->config.max_verbs_prio = verb_priorities;
+	err = mlx5_flow_priorities(eth_dev);
+	if (err < 0)
+		goto error;
+	priv->config.flow_prio = err;
 	/*
 	 * Once the device is added to the list of memory event
 	 * callback, its global MR cache table cannot be expanded
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 11aa0932f..ed8c1c9a2 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -114,7 +114,7 @@  struct mlx5_dev_config {
 		unsigned int min_rxqs_num;
 		/* Rx queue count threshold to enable MPRQ. */
 	} mprq; /* Configurations for Multi-Packet RQ. */
-	unsigned int max_verbs_prio; /* Number of Verb flow priorities. */
+	unsigned int flow_prio; /* Number of flow priorities. */
 	unsigned int tso_max_payload_sz; /* Maximum TCP payload for TSO. */
 	unsigned int ind_table_max_size; /* Maximum indirection table size. */
 	int txq_inline; /* Maximum packet size for inlining. */
@@ -309,7 +309,7 @@  int mlx5_traffic_restart(struct rte_eth_dev *dev);
 
 /* mlx5_flow.c */
 
-int mlx5_verbs_max_prio(struct rte_eth_dev *dev);
+int mlx5_flow_priorities(struct rte_eth_dev *dev);
 void mlx5_flow_print(struct rte_flow *flow);
 int mlx5_flow_validate(struct rte_eth_dev *dev,
 		       const struct rte_flow_attr *attr,
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 8b5b695d4..5d3bc183d 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -82,11 +82,11 @@  struct ibv_spec_header {
   *   Pointer to Ethernet device.
   *
   * @return
-  *   number of supported Verbs flow priority on success, a negative errno
-  *   value otherwise and rte_errno is set.
+  *   number of supported flow priority on success, a negative errno value
+  *   otherwise and rte_errno is set.
   */
 int
-mlx5_verbs_max_prio(struct rte_eth_dev *dev)
+mlx5_flow_priorities(struct rte_eth_dev *dev)
 {
 	struct {
 		struct ibv_flow_attr attr;
@@ -106,25 +106,25 @@  mlx5_verbs_max_prio(struct rte_eth_dev *dev)
 		},
 	};
 	struct ibv_flow *flow;
-	uint32_t verb_priorities;
 	struct mlx5_hrxq *drop = mlx5_hrxq_drop_new(dev);
+	uint16_t vprio[] = { 8, 16 };
+	int i;
 
 	if (!drop) {
 		rte_errno = ENOTSUP;
 		return -rte_errno;
 	}
-	for (verb_priorities = 0; 1; verb_priorities++) {
-		flow_attr.attr.priority = verb_priorities;
-		flow = mlx5_glue->create_flow(drop->qp,
-					      &flow_attr.attr);
+	for (i = 0; i != RTE_DIM(vprio); i++) {
+		flow_attr.attr.priority = vprio[i] - 1;
+		flow = mlx5_glue->create_flow(drop->qp, &flow_attr.attr);
 		if (!flow)
 			break;
 		claim_zero(mlx5_glue->destroy_flow(flow));
 	}
 	mlx5_hrxq_drop_release(dev, drop);
 	DRV_LOG(INFO, "port %u flow maximum priority: %d",
-		dev->data->port_id, verb_priorities);
-	return verb_priorities;
+		dev->data->port_id, vprio[i]);
+	return vprio[i];
 }
 
 /**
@@ -318,7 +318,7 @@  mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev,
 	struct priv *priv = dev->data->dev_private;
 	const struct rte_flow_attr attr = {
 		.ingress = 1,
-		.priority = priv->config.max_verbs_prio - 1,
+		.priority = priv->config.flow_prio - 1,
 	};
 	struct rte_flow_item items[] = {
 		{