Hi Pavan, snipped > >> Add graceful teardown that addresses both event mode and poll > >mode. > >> > >> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > >> --- > >snipped > >> + if (rsrc->event_mode) { > >> + struct l2fwd_event_resources *evt_rsrc = > >> + rsrc->evt_rsrc; > >> + for (i = 0; i < evt_rsrc->rx_adptr.nb_rx_adptr; i++) > >> + rte_event_eth_rx_adapter_stop( > >> + evt_rsrc->rx_adptr.rx_adptr[i]); > >Question from my end, for a graceful tear down first we stop the RX > >adapter then ensure after all events from worker are either dropped or > >transmit. Then we continue to TX adapter is stop. Is this right way? > > The general rule of thumb is to stop producers before consumers. > > >> + for (i = 0; i < evt_rsrc->tx_adptr.nb_tx_adptr; i++) > >> + rte_event_eth_tx_adapter_stop( > >> + evt_rsrc->tx_adptr.tx_adptr[i]); > >Should we call `rte_cleanup` to clean up the service core usage? > > Since we are exiting from here I don't think we explicitly need to do a > cleanup of > service config.
As I recollect in dpdk 18.11, there was a bug and fix done for service core cleanup with `rte_cleanup`. If this taken care implicity 19.11, then yes you are right there is no need of `rte_celanup` when service cores are in use. > > > > >> } > >> printf("Bye...\n"); > >> > >> -- > >> 2.17.1