[dpdk-stable] patch 'net/octeontx: fix failures when available ports > queues' has been queued to stable release 18.08.1

Kevin Traynor ktraynor at redhat.com
Thu Nov 29 14:20:53 CET 2018


Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/08/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From ceff8ff1bfa1c890a2a70191e9f86d30c869929a Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph at caviumnetworks.com>
Date: Wed, 14 Nov 2018 09:22:03 +0000
Subject: [PATCH] net/octeontx: fix failures when available ports > queues

[ upstream commit 7efd5202f7fecc3f995cbf214cdae834e7a7494f ]

When eth_octeontx is initialized before event_octeontx, eth_octeontx
would initiate setting up of the event device with the max ports and
queues available. If number of ports is more than the number of queues,
some ports would be left unused when the ports and queues are mapped
1:1. But even in that case the ports need to be setup, or otherwise it
would lead to a segmentation fault when event device is started.

Fixes: f7be70e5130e ("net/octeontx: add net device probe and remove")

Signed-off-by: Anoob Joseph <anoob.joseph at caviumnetworks.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob at caviumnetworks.com>
---
 drivers/net/octeontx/octeontx_ethdev.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
index 328187c70..01dbbe484 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -1246,13 +1246,6 @@ octeontx_probe(struct rte_vdev_device *dev)
 		goto parse_error;
 	}
-	if (pnum > qnum) {
-		/*
-		 * We don't poll on event ports
-		 * that do not have any queues assigned.
-		 */
-		pnum = qnum;
-		PMD_INIT_LOG(INFO,
-			"reducing number of active event ports to %d", pnum);
-	}
+
+	/* Enable all queues available */
 	for (i = 0; i < qnum; i++) {
 		res = rte_event_queue_setup(evdev, i, NULL);
@@ -1264,4 +1257,5 @@ octeontx_probe(struct rte_vdev_device *dev)
 	}
 
+	/* Enable all ports available */
 	for (i = 0; i < pnum; i++) {
 		res = rte_event_port_setup(evdev, i, NULL);
@@ -1272,4 +1266,12 @@ octeontx_probe(struct rte_vdev_device *dev)
 			goto parse_error;
 		}
+	}
+
+	/*
+	 * Do 1:1 links for ports & queues. All queues would be mapped to
+	 * one port. If there are more ports than queues, then some ports
+	 * won't be linked to any queue.
+	 */
+	for (i = 0; i < qnum; i++) {
 		/* Link one queue to one event port */
 		qlist = i;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-29 13:11:36.394114438 +0000
+++ 0052-net-octeontx-fix-failures-when-available-ports-queue.patch	2018-11-29 13:11:34.000000000 +0000
@@ -1,8 +1,10 @@
-From 7efd5202f7fecc3f995cbf214cdae834e7a7494f Mon Sep 17 00:00:00 2001
+From ceff8ff1bfa1c890a2a70191e9f86d30c869929a Mon Sep 17 00:00:00 2001
 From: Anoob Joseph <anoob.joseph at caviumnetworks.com>
 Date: Wed, 14 Nov 2018 09:22:03 +0000
 Subject: [PATCH] net/octeontx: fix failures when available ports > queues
 
+[ upstream commit 7efd5202f7fecc3f995cbf214cdae834e7a7494f ]
+
 When eth_octeontx is initialized before event_octeontx, eth_octeontx
 would initiate setting up of the event device with the max ports and
 queues available. If number of ports is more than the number of queues,
@@ -11,7 +13,6 @@
 would lead to a segmentation fault when event device is started.
 
 Fixes: f7be70e5130e ("net/octeontx: add net device probe and remove")
-Cc: stable at dpdk.org
 
 Signed-off-by: Anoob Joseph <anoob.joseph at caviumnetworks.com>
 Signed-off-by: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
@@ -21,10 +22,10 @@
  1 file changed, 11 insertions(+), 9 deletions(-)
 
 diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
-index a3063be42..046e12986 100644
+index 328187c70..01dbbe484 100644
 --- a/drivers/net/octeontx/octeontx_ethdev.c
 +++ b/drivers/net/octeontx/octeontx_ethdev.c
-@@ -1239,13 +1239,6 @@ octeontx_probe(struct rte_vdev_device *dev)
+@@ -1246,13 +1246,6 @@ octeontx_probe(struct rte_vdev_device *dev)
  		goto parse_error;
  	}
 -	if (pnum > qnum) {
@@ -40,13 +41,13 @@
 +	/* Enable all queues available */
  	for (i = 0; i < qnum; i++) {
  		res = rte_event_queue_setup(evdev, i, NULL);
-@@ -1257,4 +1250,5 @@ octeontx_probe(struct rte_vdev_device *dev)
+@@ -1264,4 +1257,5 @@ octeontx_probe(struct rte_vdev_device *dev)
  	}
  
 +	/* Enable all ports available */
  	for (i = 0; i < pnum; i++) {
  		res = rte_event_port_setup(evdev, i, NULL);
-@@ -1265,4 +1259,12 @@ octeontx_probe(struct rte_vdev_device *dev)
+@@ -1272,4 +1266,12 @@ octeontx_probe(struct rte_vdev_device *dev)
  			goto parse_error;
  		}
 +	}


More information about the stable mailing list