> -----Original Message----- > From: Carrillo, Erik G <[email protected]> > Sent: Thursday, October 20, 2022 8:01 PM > To: Van Haaren, Harry <[email protected]> > Cc: Naga Harish K, S V <[email protected]>; [email protected]; > [email protected] > Subject: [PATCH] service: fix early move to inactive status > > Assume thread T2 is a service lcore that is in the middle of executing > a service function. Also, assume thread T1 concurrently calls > rte_service_lcore_stop(), which will set the "service_active_on_lcore" > state to false. If thread T1 then calls rte_service_may_be_active(), > it can return zero even though T2 is still running the service function. > If T1 then proceeds to free data being used by T2, a crash can ensue. > > Move the logic that clears the "service_active_on_lcore" state from the > rte_service_lcore_stop() function to the service_runner_func() to > ensure that we: > - don't let the "service_active_on_lcore" state linger as 1 > - don't clear the state early > > Fixes: 6550113be62d ("service: fix lingering active status") > Cc: [email protected] > > Signed-off-by: Erik Gabriel Carrillo <[email protected]>
+CC Thomas/David, please consider for inclusion in next RC. Thanks Erik, indeed the "active = off" store is too early in the current implementation, so: Acked-by: Harry van Haaren <[email protected]> <snip patch>

