SWDEV-546146 - Added support for hipMemLocationTypeHost in hipMemSetAccess (#682)

This commit is contained in:
Ioannis Assiouras
2025-09-10 23:06:20 +01:00
committed by GitHub
parent dd1a2dbf8a
commit 35629e433d
11 changed files with 197 additions and 37 deletions
@@ -2290,7 +2290,7 @@ void* Device::virtualAlloc(void* req_addr, size_t size, size_t alignment) {
}
constexpr bool kParent = true;
amd::Memory* mem = CreateVirtualBuffer(context(), vptr, size, -1, kParent);
amd::Memory* mem = CreateVirtualBuffer(context(), vptr, size, -1, -1, kParent);
if (mem == nullptr) {
LogPrintfError("Cannot create Virtual Buffer for vptr: %p of size: %u", vptr, size);
}
@@ -2316,11 +2316,13 @@ bool Device::virtualFree(void* addr) {
return true;
}
bool Device::SetMemAccess(void* va_addr, size_t va_size, VmmAccess access_flags) {
bool Device::SetMemAccess(void* va_addr, size_t va_size, VmmAccess access_flags,
VmmLocationType access_location) {
hsa_status_t hsa_status = HSA_STATUS_SUCCESS;
hsa_amd_memory_access_desc_t desc;
desc.permissions = static_cast<hsa_access_permission_t>(access_flags);
desc.agent_handle = getBackendDevice();
desc.agent_handle =
access_location == VmmLocationType::kDevice ? getBackendDevice() : getCpuAgent();
if ((hsa_status = hsa_amd_vmem_set_access(va_addr, va_size, &desc, 1)) != HSA_STATUS_SUCCESS) {
LogPrintfError("Failed hsa_amd_vmem_set_access. Failed with status:%d \n", hsa_status);