adapter_stop function is stopping the adapter service using rte_service_runstate_set() api and waiting until rte_service_may_be_active() api returns stopped state in an infinite loop.
This results in hang issues if application calls rte_service_lcore_stop() before adapter stop. remove the state check after setting the service state which avoids running into hang issues. This also makes timer adapter stop inline with remaining adapters. Fixes: 47d05b292820 ("eventdev: add timer adapter common code") Cc: sta...@dpdk.org Signed-off-by: Naga Harish K S V <s.v.naga.haris...@intel.com> --- lib/eventdev/rte_event_timer_adapter.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c index d2480060c5..8266003ab1 100644 --- a/lib/eventdev/rte_event_timer_adapter.c +++ b/lib/eventdev/rte_event_timer_adapter.c @@ -1036,10 +1036,6 @@ swtim_stop(const struct rte_event_timer_adapter *adapter) if (ret < 0) return ret; - /* Wait for the service to complete its final iteration */ - while (rte_service_may_be_active(sw->service_id)) - rte_pause(); - return 0; } -- 2.25.1