Fix soft hang on AQLQueue destruction with a timeout

Add timeout to AQLQueue destructor signal wait to prevent indefinite hang

Change-Id: I6c6c98a7bdd27d39569af1d667aa9aa7e9596535
Signed-off-by: Chris Freehill <cfreehil@amd.com>
此提交包含在:
Shweta.Khatri authored and Chris Freehill committed 2024-06-25 12:27:09 -05:00
1 父節點 2f05c2a273
當前提交 4e9647704d
1 file changed
+4 -1
+4 -1
查看文件
@@ -365,8 +365,11 @@ AqlQueue::~AqlQueue() {
// Remove kfd exception handler
exceptionState |= ERROR_HANDLER_TERMINATE;
while ((exceptionState & ERROR_HANDLER_DONE) != ERROR_HANDLER_DONE) {
const uint64_t timeout_ms = 5000;
exception_signal_->StoreRelease(-1ull);
exception_signal_->WaitRelaxed(HSA_SIGNAL_CONDITION_NE, -1ull, -1ull, HSA_WAIT_STATE_BLOCKED);
exception_signal_->WaitRelaxed(HSA_SIGNAL_CONDITION_NE, -1ull, timeout_ms,
HSA_WAIT_STATE_BLOCKED);
}
Inactivate();