[SYCL][L0] Fix memory leak in event pool. #2838
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Memory leak in event pool was caused because we failed to invoke zeEventPoolDestroy() because we set the live events of the newly created pool with max number of events. And then we only destroy the pool if the live events count drops to zero.
The number of live events drops to zero only we really used all 256 events available in the pool.
Therefore, it became a memory leak when only a few events are used in the pool.
The fix is to introduce a new method finalize() in pi_context class.
This method is invoked from the pi_context destructor.
It checks if there is any pool that has non-zero live events and then calls zeEventPoolDestroy for it to deallocate event pool associated with the context.
Signed-off-by: Byoungro So [email protected]