SWDEV-413997 - Cleanup fixes for Virtual Memory Management.

Change-Id: I9a4a4d9087b5daf15e3ba31e786d34db431212a1
Этот коммит содержится в:
kjayapra-amd
2024-04-20 16:07:51 -04:00
коммит произвёл Karthik Jayaprakash
родитель 0ccdb3e160
Коммит 74ffc5f0d5
2 изменённых файлов: 4 добавлений и 4 удалений
-1
Просмотреть файл
@@ -789,7 +789,6 @@ bool Buffer::create(bool alloc_local) {
}
owner()->setSvmPtr(reinterpret_cast<void*>(owner()->getUserData().hsa_handle));
amd::MemObjMap::AddMemObj(owner()->getSvmPtr(), owner());
return true;
}
+4 -3
Просмотреть файл
@@ -2605,12 +2605,13 @@ void VirtualGPU::submitVirtualMap(amd::VirtualMapCommand& vcmd) {
dispatchBarrierPacket(kBarrierPacketHeader, false);
Barriers().WaitCurrent();
amd::Memory* vaddr_sub_obj = amd::MemObjMap::FindMemObj(vcmd.ptr());
assert(vaddr_sub_obj != nullptr);
// Unmap the object, since the physical addr is set.
if ((hsa_status = hsa_amd_vmem_unmap(vaddr_base_obj->getSvmPtr(), vcmd.size()))
if ((hsa_status = hsa_amd_vmem_unmap(vaddr_sub_obj->getSvmPtr(), vcmd.size()))
== HSA_STATUS_SUCCESS) {
// assert the va is mapped and needs to be removed
amd::Memory* vaddr_sub_obj = amd::MemObjMap::FindMemObj(vcmd.ptr());
assert(vaddr_sub_obj != nullptr);
vaddr_sub_obj->getContext().devices()[0]->DestroyVirtualBuffer(vaddr_sub_obj);
amd::MemObjMap::RemoveMemObj(vcmd.ptr());
vaddr_sub_obj->getUserData().phys_mem_obj = nullptr;