net/ice: fix leak on thread termination
A terminated pthread should be joined or detached so that its associated
resources are released.
The "ice-reset-<vf_id>" threads are used to service some reset task in
the background, but they are never joined by the thread that created
them.
The easiest solution is to detach new threads.
The Windows EAL did not provide a pthread_detach wrapper but there is no
resource to release for Windows threads, so add an empty wrapper.
Fixes: 3b3757bda3
("net/ice: get VF hardware index in DCF")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
This commit is contained in:
parent
b8b5dc6b95
commit
8eff201b00
@ -121,6 +121,8 @@ ice_dcf_vsi_update_service_handler(void *param)
|
||||
struct ice_dcf_hw *hw = reset_param->dcf_hw;
|
||||
struct ice_dcf_adapter *adapter;
|
||||
|
||||
pthread_detach(pthread_self());
|
||||
|
||||
rte_delay_us(ICE_DCF_VSI_UPDATE_SERVICE_INTERVAL);
|
||||
|
||||
rte_spinlock_lock(&vsi_update_lock);
|
||||
|
@ -143,6 +143,12 @@ pthread_create(void *threadid, const void *threadattr, void *threadfunc,
|
||||
return ((hThread != NULL) ? 0 : E_FAIL);
|
||||
}
|
||||
|
||||
static inline int
|
||||
pthread_detach(__rte_unused pthread_t thread)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
pthread_join(__rte_unused pthread_t thread,
|
||||
__rte_unused void **value_ptr)
|
||||
|
Loading…
Reference in New Issue
Block a user