rocr: Workaround segfault on GFX9 devices older than GFX90a

Devices older than GFX90a hit a segfault on queue unmap when an
SDMA queue has been assigned a fixed engine.  Bypass fixing the
engine for these devices for now.

Change-Id: I7d2f882d2377f004a7bb65f3b397396db07ce6d3


[ROCm/ROCR-Runtime commit: 1d6ff45673]
This commit is contained in:
jokim
2024-10-10 14:38:23 -04:00
committed by Jonathan Kim
parent 9f4a01e8a9
commit 1e7d5c5833
@@ -839,6 +839,12 @@ void GpuAgent::InitDma() {
kfd_version.KernelInterfaceMinorVersion >= 17)))
rec_eng = -1;
// Observing strange behavior when fixing host<->device engines
// on GFX9 devices older than GFX90a, so bypass engine fix.
if (!use_xgmi && isa_->GetMajorVersion() == 9 && isa_->GetMinorVersion() == 0
&& isa_->GetStepping() < 10)
rec_eng = -1;
auto ret = CreateBlitSdma(use_xgmi, rec_eng);
if (ret != nullptr) return ret;
}