diff --git a/runtime/hsa-runtime/core/runtime/amd_aql_queue.cpp b/runtime/hsa-runtime/core/runtime/amd_aql_queue.cpp index 55936f83fb..683fcd864a 100644 --- a/runtime/hsa-runtime/core/runtime/amd_aql_queue.cpp +++ b/runtime/hsa-runtime/core/runtime/amd_aql_queue.cpp @@ -1042,6 +1042,13 @@ bool AqlQueue::ExceptionHandler(hsa_signal_value_t error_code, void* arg) { // Undefined or unexpected code assert((errorCode != HSA_STATUS_ERROR) && "Undefined or unexpected queue error code"); + // Suppress VM fault reporting. This is more useful when reported through the system error + // handler. + if (errorCode == HSA_STATUS_ERROR_MEMORY_FAULT) { + debug_print("Queue error - HSA_STATUS_ERROR_MEMORY_FAULT\n"); + return false; + } + queue->Suspend(); if (queue->errors_callback_ != nullptr) { queue->errors_callback_(errorCode, queue->public_handle(), queue->errors_data_);