From e7a34f9efe160acacaf424ccd82cf8a5c6d7aaee Mon Sep 17 00:00:00 2001 From: Jaydeep Patel Date: Wed, 2 Nov 2022 14:46:18 +0000 Subject: [PATCH] SWDEV-365048 - extra marker is required for HW event check, which is done before the callback is finished. Change-Id: Ib46bfc4e060a60fb14aa782688d35b34534cca65 --- hipamd/src/hip_stream.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hipamd/src/hip_stream.cpp b/hipamd/src/hip_stream.cpp index b47ed8fa26..19fb6fc0ad 100644 --- a/hipamd/src/hip_stream.cpp +++ b/hipamd/src/hip_stream.cpp @@ -587,10 +587,21 @@ hipError_t streamCallback_common(hipStream_t stream, StreamCallback* cbo, void* if (last_command != nullptr) { last_command->release(); } + // Extra marker is required for HW event check, which is done before the callback is finished. + // Add the new barrier to stall the stream, until the callback is done + eventWaitList.clear(); + eventWaitList.push_back(command); + amd::Command* block_command = new amd::Marker(*hostQueue, !kMarkerDisableFlush, eventWaitList); + if (block_command == nullptr) { + return hipErrorInvalidValue; + } + block_command->enqueue(); + block_command->release(); + // Release the callback marker command->release(); // Notify the command queue about a possible waiter for the calback - command->notifyCmdQueue(); + block_command->notifyCmdQueue(); return hipSuccess; }