> From: Pavan Nikhilesh [mailto:[email protected]] > Sent: Friday, January 12, 2018 4:44 PM > To: [email protected]; [email protected]; Van > Haaren, Harry <[email protected]>; Eads, Gage > <[email protected]>; [email protected]; [email protected]; Ma, > Liang J <[email protected]> > Cc: [email protected]; Pavan Nikhilesh <[email protected]> > 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 <[email protected]>
Just a comment below - no changes required. Acked-by: Harry van Haaren <[email protected]> > +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.

