From fbe47f8da2b5b75ca3d39c2b12e5c745885d3302 Mon Sep 17 00:00:00 2001 From: Paulius Velesko Date: Wed, 21 Feb 2024 10:17:45 +0200 Subject: [PATCH 1/3] Fix Monitor Thread premature exit bug --- src/backend/Level0/CHIPBackendLevel0.cc | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/backend/Level0/CHIPBackendLevel0.cc b/src/backend/Level0/CHIPBackendLevel0.cc index 3fb175ab1..1362d82be 100644 --- a/src/backend/Level0/CHIPBackendLevel0.cc +++ b/src/backend/Level0/CHIPBackendLevel0.cc @@ -601,16 +601,6 @@ void CHIPEventMonitorLevel0::checkCallbacks() { CHIPCallbackDataLevel0 *CbData; LOCK(EventMonitorMtx); // chipstar::EventMonitor::Stop { - - if (Stop) { - logTrace("checkCallbacks: out of callbacks. Exiting " - "thread"); - if (Backend->CallbackQueue.size()) - logError("Callback thread exiting while there are still active " - "callbacks in the queue"); - pthread_exit(0); - } - LOCK(Backend->CallbackQueueMtx); // Backend::CallbackQueue if ((Backend->CallbackQueue.size() == 0)) From 69283eb3a8e3f9da487204e322b2fa52007a1550 Mon Sep 17 00:00:00 2001 From: Paulius Velesko Date: Wed, 21 Feb 2024 10:18:12 +0200 Subject: [PATCH 2/3] hipKernelLaunchIsNonBlocking destroy stream --- .../hipKernelLaunchIsNonBlocking.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/samples/hipKernelLaunchIsNonBlocking/hipKernelLaunchIsNonBlocking.cc b/samples/hipKernelLaunchIsNonBlocking/hipKernelLaunchIsNonBlocking.cc index 891b569bd..bc52843ba 100644 --- a/samples/hipKernelLaunchIsNonBlocking/hipKernelLaunchIsNonBlocking.cc +++ b/samples/hipKernelLaunchIsNonBlocking/hipKernelLaunchIsNonBlocking.cc @@ -112,4 +112,8 @@ int main() { } else { std::cout << "FAILED!" << std::endl; } + + CHECK(hipStreamDestroy(q)); + CHECK(hipEventDestroy(start)); + CHECK(hipEventDestroy(stop)); } From d460e1442b59492f1fba833f51050e2123381258 Mon Sep 17 00:00:00 2001 From: Paulius Velesko Date: Wed, 21 Feb 2024 10:44:53 +0200 Subject: [PATCH 3/3] rename exitChecks to checkExit --- src/backend/Level0/CHIPBackendLevel0.cc | 4 ++-- src/backend/Level0/CHIPBackendLevel0.hh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/Level0/CHIPBackendLevel0.cc b/src/backend/Level0/CHIPBackendLevel0.cc index 1362d82be..383215cb2 100644 --- a/src/backend/Level0/CHIPBackendLevel0.cc +++ b/src/backend/Level0/CHIPBackendLevel0.cc @@ -670,7 +670,7 @@ void CHIPEventMonitorLevel0::checkEvents() { } // done collecting events to delete } -void CHIPEventMonitorLevel0::exitChecks() { +void CHIPEventMonitorLevel0::checkExit() { LOCK(EventMonitorMtx); // chipstar::EventMonitor::Stop /** * In the case that a user doesn't destroy all the @@ -726,7 +726,7 @@ void CHIPEventMonitorLevel0::monitor() { usleep(200); checkCallbacks(); checkEvents(); - exitChecks(); + checkExit(); } // endless loop } // End EventMonitorLevel0 diff --git a/src/backend/Level0/CHIPBackendLevel0.hh b/src/backend/Level0/CHIPBackendLevel0.hh index 84a3ef154..192c1c4ef 100644 --- a/src/backend/Level0/CHIPBackendLevel0.hh +++ b/src/backend/Level0/CHIPBackendLevel0.hh @@ -182,7 +182,7 @@ class CHIPEventMonitorLevel0 : public chipstar::EventMonitor { * @brief Check if stop was requested for this monitor, if so handle all * outstanding events */ - void exitChecks(); + void checkExit(); void checkCallbacks();