From 65686b9a0aa0a30e95a9f047a86c64283121efa9 Mon Sep 17 00:00:00 2001 From: David Yat Sin Date: Sat, 15 Feb 2025 20:59:25 +0000 Subject: [PATCH] rocr: Allow IPC signals in hsa_amd_signal_async_handler Allow IPC signals to be registered with hsa_amd_signal_async_handler. This forces AsyncEventsLoop to switch to polling instead of interrupts. [ROCm/ROCR-Runtime commit: fa8be44df964358dd9d06e6a075ec716499089b1] --- .../runtime/hsa-runtime/core/runtime/hsa_ext_amd.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ext_amd.cpp b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ext_amd.cpp index b3ca36577d..f49df6b73c 100644 --- a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ext_amd.cpp +++ b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ext_amd.cpp @@ -635,7 +635,9 @@ hsa_status_t hsa_amd_signal_async_handler(hsa_signal_t hsa_signal, hsa_signal_co core::Signal* signal = core::Signal::Convert(hsa_signal); IS_VALID(signal); - if (core::g_use_interrupt_wait && (!core::InterruptSignal::IsType(signal))) + + if ((core::g_use_interrupt_wait && (!core::InterruptSignal::IsType(signal)) && + !core::IPCSignal::IsType(signal))) return HSA_STATUS_ERROR_INVALID_SIGNAL; return core::Runtime::runtime_singleton_->SetAsyncSignalHandler( hsa_signal, cond, value, handler, arg);