From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 47B411B4AA for ; Thu, 29 Nov 2018 14:23:31 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8661A13AA0; Thu, 29 Nov 2018 13:23:30 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-117-230.ams2.redhat.com [10.36.117.230]) by smtp.corp.redhat.com (Postfix) with ESMTP id E36CC1001F50; Thu, 29 Nov 2018 13:23:28 +0000 (UTC) From: Kevin Traynor To: Anoob Joseph Cc: Pavan Nikhilesh , Jerin Jacob , dpdk stable Date: Thu, 29 Nov 2018 13:20:53 +0000 Message-Id: <20181129132128.7609-53-ktraynor@redhat.com> In-Reply-To: <20181129132128.7609-1-ktraynor@redhat.com> References: <20181129132128.7609-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Thu, 29 Nov 2018 13:23:30 +0000 (UTC) Subject: [dpdk-stable] patch 'net/octeontx: fix failures when available ports > queues' has been queued to stable release 18.08.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Nov 2018 13:23:31 -0000 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 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 Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- 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 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@dpdk.org Signed-off-by: Anoob Joseph Signed-off-by: Pavan Nikhilesh @@ -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; } + }