diff --git a/projects/clr/rocclr/device/rocm/rocvirtual.cpp b/projects/clr/rocclr/device/rocm/rocvirtual.cpp index 76a40c76677..a364e57bc0f 100644 --- a/projects/clr/rocclr/device/rocm/rocvirtual.cpp +++ b/projects/clr/rocclr/device/rocm/rocvirtual.cpp @@ -440,7 +440,8 @@ hsa_signal_t VirtualGPU::HwQueueTracker::ActiveSignal(hsa_signal_value_t init_va auto temp_id = (current_id_ + 2) % signal_list_.size(); // If GPU is still busy with processing, then add more signals to avoid more frequent stalls - if (Hsa::signal_load_relaxed(signal_list_[temp_id]->signal_) > 0) { + if ((Hsa::signal_load_relaxed(signal_list_[temp_id]->signal_) > 0) || + (signal_list_[temp_id]->ts_ == ts)) { std::unique_ptr signal(new ProfilingSignal()); if ((signal != nullptr) && CreateSignal(signal.get())) { // Find valid new index