SWDEV-413997 - Cleanup fixes for Virtual Memory Management.

Change-Id: I9a4a4d9087b5daf15e3ba31e786d34db431212a1


[ROCm/clr commit: 74ffc5f0d5]
此提交包含在:
kjayapra-amd
2024-04-20 16:07:51 -04:00
提交者 Karthik Jayaprakash
父節點 a2ffb2ad40
當前提交 f613be3d81
共有 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;