Hi Pavan, </snip>
> static inline void > schedule_devices(unsigned int lcore_id) { > if (fdata->rx_core[lcore_id] && (fdata->rx_single || > rte_atomic32_cmpset(&(fdata->rx_lock), 0, 1))) { > - producer(); > + rte_service_run_iter_on_app_lcore(fdata->rxadptr_service_id, > 1); > rte_atomic32_clear((rte_atomic32_t *)&(fdata->rx_lock)); > } The (rx_single || cmpset(rx_lock)) check should no longer be needed -- this logic is provided in rte_service_run_iter_on_app_lcore() and service_run(). The rx_lock can be dropped in general. </snip> > + if (port_needed) > + prod_data.port_id = cons_data.port_id + 1; > + prod_data.dev_id = evdev_id; > + prod_data.qid = cdata.qid[0]; > + Is prod_data still needed? Looks like we're only using it in main() to print the port ID (which may not be valid, depending on if port_needed is true). Thanks, Gage