From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pavan Nikhilesh Bhagavatula Subject: [PATCH v3 2/3] examples/eventdev: start ethdev after eth adapter setup Date: Tue, 12 Mar 2019 20:41:09 +0000 Message-ID: <20190312204037.16141-2-pbhagavatula@marvell.com> References: <20190227200019.1085-1-pbhagavatula@marvell.com> <20190312204037.16141-1-pbhagavatula@marvell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "harry.van.haaren@intel.com" , "nikhil.rao@intel.com" , "erik.g.carrillo@intel.com" , "abhinandan.gujjar@intel.com" , "john.mcnamara@intel.com" Return-path: Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id E801E44C3 for ; Tue, 12 Mar 2019 21:41:15 +0100 (CET) In-Reply-To: <20190312204037.16141-1-pbhagavatula@marvell.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Pavan Nikhilesh Start ethdev after the Rx/Tx adapter setup is complete as in some architectures it might lead to undefined behaviour or events being dropped. Signed-off-by: Pavan Nikhilesh --- v3 Changes: - add the same changes in examples/eventdev_pipeline examples/eventdev_pipeline/main.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/examples/eventdev_pipeline/main.c b/examples/eventdev_pipeline= /main.c index 92e08bc0c..22ea75e7b 100644 --- a/examples/eventdev_pipeline/main.c +++ b/examples/eventdev_pipeline/main.c @@ -316,11 +316,6 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool) return retval; } - /* Start the Ethernet port. */ - retval =3D rte_eth_dev_start(port); - if (retval < 0) - return retval; - /* Display the port MAC address. */ struct ether_addr addr; rte_eth_macaddr_get(port, &addr); @@ -440,6 +435,7 @@ main(int argc, char **argv) { struct worker_data *worker_data; uint16_t num_ports; + uint16_t portid; int lcore_id; int err; @@ -507,6 +503,14 @@ main(int argc, char **argv) init_ports(num_ports); fdata->cap.adptr_setup(num_ports); + /* Start the Ethernet port. */ + RTE_ETH_FOREACH_DEV(portid) { + err =3D rte_eth_dev_start(portid); + if (err < 0) + rte_exit(EXIT_FAILURE, "Error starting ethdev %d\n", + portid); + } + int worker_idx =3D 0; RTE_LCORE_FOREACH_SLAVE(lcore_id) { if (lcore_id >=3D MAX_NUM_CORE) -- 2.21.0