SWDEV-485904 - Fix virtual,physical mem obj leaks
Change-Id: Ie0456b5dcfec206ae54a6aabfc2a15a620cac693
This commit is contained in:
committed by
Maneesh Gupta
parent
8c84a20b01
commit
870842201d
@@ -479,11 +479,7 @@ bool Device::DestroyVirtualBuffer(amd::Memory* vaddr_mem_obj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (vaddr_mem_obj->parent() == nullptr) {
|
||||
// If parent is nullptr, then vaddr_mem_obj is the parent.
|
||||
amd::MemObjMap::RemoveVirtualMemObj(vaddr_mem_obj->getSvmPtr());
|
||||
return true;
|
||||
} else {
|
||||
if (vaddr_mem_obj->parent() != nullptr) {
|
||||
// If parent is not nullptr, this is the sub-buffer object.
|
||||
amd::Memory* vaddr_base_obj = amd::MemObjMap::FindVirtualMemObj(vaddr_mem_obj->getSvmPtr());
|
||||
if (vaddr_base_obj == nullptr) {
|
||||
|
||||
@@ -456,7 +456,9 @@ Memory::~Memory() {
|
||||
}
|
||||
hostMemRef_.deallocateMemory(context_());
|
||||
if (getMemFlags() & CL_MEM_VA_RANGE_AMD) {
|
||||
amd::MemObjMap::RemoveVirtualMemObj(getSvmPtr());
|
||||
if (parent_ == nullptr) {
|
||||
amd::MemObjMap::RemoveVirtualMemObj(getSvmPtr());
|
||||
}
|
||||
// If runtime executes graph mempool with VM, then VA can be mapped in space
|
||||
// for graph validation logic during execution. And the reason it's not unmaped
|
||||
// in graph itself because the app can have a graph without a free node
|
||||
|
||||
Reference in New Issue
Block a user