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
Tento commit je obsažen v:
jokim
2024-10-10 14:38:23 -04:00
odevzdal Jonathan Kim
rodič ccd80d19ba
revize 1d6ff45673
+6
Zobrazit soubor
@@ -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;
}