X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Feventdev_pipeline%2Fmain.c;h=3dbef6ed45a382d53e1b1bd98d91c215b937c40d;hb=f6168ca7af4303c560a510b104a6f61107484acf;hp=ae50591b88d75d90575b2c3f03561cf94bf78d06;hpb=3d15913432f12a2abcaa00122502eb944feeeb29;p=dpdk.git diff --git a/examples/eventdev_pipeline/main.c b/examples/eventdev_pipeline/main.c index ae50591b88..3dbef6ed45 100644 --- a/examples/eventdev_pipeline/main.c +++ b/examples/eventdev_pipeline/main.c @@ -22,6 +22,32 @@ struct config_data cdata = { .worker_cq_depth = 16 }; +static void +dump_core_info(unsigned int lcore_id, struct worker_data *data, + unsigned int worker_idx) +{ + if (fdata->rx_core[lcore_id]) + printf( + "[%s()] lcore %d executing NIC Rx\n", + __func__, lcore_id); + + if (fdata->tx_core[lcore_id]) + printf( + "[%s()] lcore %d executing NIC Tx\n", + __func__, lcore_id); + + if (fdata->sched_core[lcore_id]) + printf( + "[%s()] lcore %d executing scheduler\n", + __func__, lcore_id); + + if (fdata->worker_core[lcore_id]) + printf( + "[%s()] lcore %d executing worker, using eventdev port %u\n", + __func__, lcore_id, + data[worker_idx].port_id); +} + static bool core_in_use(unsigned int lcore_id) { return (fdata->rx_core[lcore_id] || fdata->sched_core[lcore_id] || @@ -287,7 +313,6 @@ static void signal_handler(int signum) { static uint8_t once; - uint16_t portid; if (fdata->done) rte_exit(1, "Exiting on signal %d\n", signum); @@ -298,17 +323,6 @@ signal_handler(int signum) rte_event_dev_dump(0, stdout); once = 1; fdata->done = 1; - rte_smp_wmb(); - - RTE_ETH_FOREACH_DEV(portid) { - rte_event_eth_rx_adapter_stop(portid); - rte_event_eth_tx_adapter_stop(portid); - if (rte_eth_dev_stop(portid) < 0) - printf("Failed to stop port %u", portid); - } - - rte_eal_mp_wait_lcore(); - } if (signum == SIGTSTP) rte_event_dev_dump(0, stdout); @@ -413,25 +427,7 @@ main(int argc, char **argv) !fdata->sched_core[lcore_id]) continue; - if (fdata->rx_core[lcore_id]) - printf( - "[%s()] lcore %d executing NIC Rx\n", - __func__, lcore_id); - - if (fdata->tx_core[lcore_id]) - printf( - "[%s()] lcore %d executing NIC Tx\n", - __func__, lcore_id); - - if (fdata->sched_core[lcore_id]) - printf("[%s()] lcore %d executing scheduler\n", - __func__, lcore_id); - - if (fdata->worker_core[lcore_id]) - printf( - "[%s()] lcore %d executing worker, using eventdev port %u\n", - __func__, lcore_id, - worker_data[worker_idx].port_id); + dump_core_info(lcore_id, worker_data, worker_idx); err = rte_eal_remote_launch(fdata->cap.worker, &worker_data[worker_idx], lcore_id); @@ -446,8 +442,13 @@ main(int argc, char **argv) lcore_id = rte_lcore_id(); - if (core_in_use(lcore_id)) - fdata->cap.worker(&worker_data[worker_idx++]); + if (core_in_use(lcore_id)) { + dump_core_info(lcore_id, worker_data, worker_idx); + fdata->cap.worker(&worker_data[worker_idx]); + + if (fdata->worker_core[lcore_id]) + worker_idx++; + } rte_eal_mp_wait_lcore(); @@ -472,6 +473,10 @@ main(int argc, char **argv) } RTE_ETH_FOREACH_DEV(portid) { + rte_event_eth_rx_adapter_stop(portid); + rte_event_eth_tx_adapter_stop(portid); + if (rte_eth_dev_stop(portid) < 0) + printf("Failed to stop port %u", portid); rte_eth_dev_close(portid); }