[dpdk-dev] [PATCH v3 2/3] examples/eventdev: start ethdev after eth adapter setup
Pavan Nikhilesh Bhagavatula
pbhagavatula at marvell.com
Tue Mar 12 21:41:09 CET 2019
From: Pavan Nikhilesh <pbhagavatula at 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 <pbhagavatula at 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
More information about the dev
mailing list