[PATCH] eventdev/timer: fix adapter stop function

Naga Harish K S V s.v.naga.harish.k at intel.com
Thu Sep 22 09:53:11 CEST 2022


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: stable at dpdk.org

Signed-off-by: Naga Harish K S V <s.v.naga.harish.k at 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



More information about the stable mailing list