SWDEV-423835 - Fixing kernel launch issues on Virtual Memory Management path.

Change-Id: I9f5e8a3d83af3809b2c50b21a10697e26113dd23
This commit is contained in:
kjayapra-amd authored and Karthik Jayaprakash committed 2024-03-12 17:22:07 -04:00
1 vanhempi dd43dc930d
commit f5ca620baa
10 files changed
+87 -83

No files matched your search

+11 -1
Näytä tiedosto
@@ -2301,6 +2301,16 @@ uint64_t Device::deviceVmemAlloc(size_t size, uint64_t flags) const {
return hsa_vmem_handle.handle;
}
void Device::deviceVmemRelease(uint64_t mem_handle) const {
hsa_amd_vmem_alloc_handle_t hsa_vmem_handle {};
hsa_vmem_handle.handle = mem_handle;
hsa_status_t hsa_status = hsa_amd_vmem_handle_release(hsa_vmem_handle);
if (hsa_status != HSA_STATUS_SUCCESS) {
LogPrintfError("Failed hsa_amd_vmem_handle_release! Failed with hsa status: %d \n", hsa_status);
}
}
void* Device::deviceLocalAlloc(size_t size, bool atomics, bool pseudo_fine_grain) const {
const hsa_amd_memory_pool_t& pool = (pseudo_fine_grain) ? gpu_ext_fine_grained_segment_
: (atomics) ? gpu_fine_grained_segment_ : gpuvm_segment_;
@@ -2381,7 +2391,7 @@ void* Device::svmAlloc(amd::Context& context, size_t size, size_t alignment, cl_
return nullptr;
}
if (mem->getSvmPtr() != nullptr) {
if (mem->getSvmPtr() != nullptr || mem->getMemFlags() & ROCCLR_MEM_PHYMEM) {
// add the information to context so that we can use it later.
amd::MemObjMap::AddMemObj(mem->getSvmPtr(), mem);
}