SWDEV-413997 - Cleanup fixes for Virtual Memory Management.
Change-Id: I9a4a4d9087b5daf15e3ba31e786d34db431212a1
[ROCm/clr commit: 74ffc5f0d5]
Αυτή η υποβολή περιλαμβάνεται σε:
υποβλήθηκε από
Karthik Jayaprakash
γονέας
a2ffb2ad40
υποβολή
f613be3d81
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Αναφορά σε νέο ζήτημα
Block a user