From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id BD3271B937 for ; Fri, 11 Jan 2019 11:32:18 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from yskoh@mellanox.com) with ESMTPS (AES256-SHA encrypted); 11 Jan 2019 12:32:14 +0200 Received: from scfae-sc-2.mti.labs.mlnx (scfae-sc-2.mti.labs.mlnx [10.101.0.96]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x0BAVjce018586; Fri, 11 Jan 2019 12:32:12 +0200 From: Yongseok Koh To: Anoob Joseph Cc: Pavan Nikhilesh , Jerin Jacob , dpdk stable Date: Fri, 11 Jan 2019 02:31:39 -0800 Message-Id: <20190111103142.21088-16-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190111103142.21088-1-yskoh@mellanox.com> References: <20190111103142.21088-1-yskoh@mellanox.com> Subject: [dpdk-stable] patch 'net/octeontx: fix failures when available ports > queues' has been queued to LTS release 17.11.5 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: Fri, 11 Jan 2019 10:32:19 -0000 Hi, FYI, your patch has been queued to LTS release 17.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 01/13/19. 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. Yongseok --- >>From 99539d24081a4b7f40c00adcdf1aec320ab0acca 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 830fc8471..049bc32b4 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -1264,15 +1264,8 @@ octeontx_probe(struct rte_vdev_device *dev) res = -EINVAL; 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); if (res < 0) { @@ -1282,6 +1275,7 @@ 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); if (res < 0) { @@ -1290,6 +1284,14 @@ octeontx_probe(struct rte_vdev_device *dev) i, res); 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; res = rte_event_port_link(evdev, i, &qlist, NULL, 1); -- 2.11.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-01-11 02:29:11.769971873 -0800 +++ 0016-net-octeontx-fix-failures-when-available-ports-queue.patch 2019-01-11 02:29:10.817974000 -0800 @@ -1,8 +1,10 @@ -From 7efd5202f7fecc3f995cbf214cdae834e7a7494f Mon Sep 17 00:00:00 2001 +From 99539d24081a4b7f40c00adcdf1aec320ab0acca 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 830fc8471..049bc32b4 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c -@@ -1238,15 +1238,8 @@ octeontx_probe(struct rte_vdev_device *dev) +@@ -1264,15 +1264,8 @@ octeontx_probe(struct rte_vdev_device *dev) res = -EINVAL; goto parse_error; } @@ -42,7 +43,7 @@ for (i = 0; i < qnum; i++) { res = rte_event_queue_setup(evdev, i, NULL); if (res < 0) { -@@ -1256,6 +1249,7 @@ octeontx_probe(struct rte_vdev_device *dev) +@@ -1282,6 +1275,7 @@ octeontx_probe(struct rte_vdev_device *dev) } } @@ -50,7 +51,7 @@ for (i = 0; i < pnum; i++) { res = rte_event_port_setup(evdev, i, NULL); if (res < 0) { -@@ -1264,6 +1258,14 @@ octeontx_probe(struct rte_vdev_device *dev) +@@ -1290,6 +1284,14 @@ octeontx_probe(struct rte_vdev_device *dev) i, res); goto parse_error; }