From: Pavan Nikhilesh <pbhagavat...@marvell.com> 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 <pbhagavat...@marvell.com> --- 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 = 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 = rte_eth_dev_start(portid); + if (err < 0) + rte_exit(EXIT_FAILURE, "Error starting ethdev %d\n", + portid); + } + int worker_idx = 0; RTE_LCORE_FOREACH_SLAVE(lcore_id) { if (lcore_id >= MAX_NUM_CORE) -- 2.21.0