> From: Pavan Nikhilesh [mailto:pbhagavat...@caviumnetworks.com] > Sent: Friday, January 12, 2018 4:44 PM > To: jerin.ja...@caviumnetworks.com; santosh.shu...@caviumnetworks.com; Van > Haaren, Harry <harry.van.haa...@intel.com>; Eads, Gage > <gage.e...@intel.com>; hemant.agra...@nxp.com; nipun.gu...@nxp.com; Ma, > Liang J <liang.j...@intel.com> > Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > Subject: [dpdk-dev] [PATCH v4 07/13] app/eventdev: add Tx service setup > > Setup one port event port for Tx and link the respective event queue. > Register the Tx function as a service to be called from a service core. > The Tx function dequeues the events from the event queue and transmits > the packet to its respective ethernet port. > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com>
Just a comment below - no changes required. Acked-by: Harry van Haaren <harry.van.haa...@intel.com> > +int > +pipeline_event_tx_service_setup(struct evt_test *test, struct evt_options > *opt, > + uint8_t tx_queue_id, uint8_t tx_port_id, > + const struct rte_event_port_conf p_conf) > +{ <snip ... > > + /* Register Tx service */ > + memset(&serv, 0, sizeof(struct rte_service_spec)); > + snprintf(serv.name, sizeof(serv.name), "Tx_service"); > + > + if (evt_has_burst_mode(opt->dev_id)) > + serv.callback = pipeline_event_tx_burst_service_func; > + else > + serv.callback = pipeline_event_tx_service_func; > + > + serv.callback_userdata = (void *)tx; > + ret = rte_service_component_register(&serv, &tx->service_id); > + if (ret) { > + evt_err("failed to register Tx service"); > + return ret; > + } > + > + ret = evt_service_setup(tx->service_id); > + if (ret) { > + evt_err("Failed to setup service core for Tx service\n"); > + return ret; > + } > + > + rte_service_runstate_set(tx->service_id, 1); It looks like the code above never sets the "component runstate" to indicate that the TX service itself is in a runnable state. This setting of the runstate is performed later in the setup process, when launching cores.