From 0f8a9567e65ae0328a9291a3e7bbfef968634648 Mon Sep 17 00:00:00 2001 From: kjayapra-amd Date: Tue, 19 Mar 2024 11:24:02 -0400 Subject: [PATCH] SWDEV-413997 - Save hsa_handle as ptr in hipMemCreate path. Change-Id: Ica32017ef7b00326dfb6d1f604e126d40ad5b786 [ROCm/clr commit: 5cbd74b554730381d0c0c29da39e7ecf5baf9574] --- projects/clr/rocclr/device/rocm/rocdevice.cpp | 7 +++++-- projects/clr/rocclr/device/rocm/rocmemory.cpp | 1 - projects/clr/rocclr/platform/memory.hpp | 1 - 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/projects/clr/rocclr/device/rocm/rocdevice.cpp b/projects/clr/rocclr/device/rocm/rocdevice.cpp index 5eee23e650..f59043d686 100644 --- a/projects/clr/rocclr/device/rocm/rocdevice.cpp +++ b/projects/clr/rocclr/device/rocm/rocdevice.cpp @@ -2400,8 +2400,11 @@ void* Device::svmAlloc(amd::Context& context, size_t size, size_t alignment, cl_ return nullptr; } - if (mem->getSvmPtr() != nullptr || mem->getMemFlags() & ROCCLR_MEM_PHYMEM) { - // add the information to context so that we can use it later. + // add the information to context so that we can use it later. + if (mem->getMemFlags() & ROCCLR_MEM_PHYMEM) { + mem->setSvmPtr(reinterpret_cast(mem->getUserData().hsa_handle)); + amd::MemObjMap::AddMemObj(mem->getSvmPtr(), mem); + } else if (mem->getSvmPtr() != nullptr) { amd::MemObjMap::AddMemObj(mem->getSvmPtr(), mem); } svmPtr = mem->getSvmPtr(); diff --git a/projects/clr/rocclr/device/rocm/rocmemory.cpp b/projects/clr/rocclr/device/rocm/rocmemory.cpp index 6ab08b00a9..88b3ba37a5 100644 --- a/projects/clr/rocclr/device/rocm/rocmemory.cpp +++ b/projects/clr/rocclr/device/rocm/rocmemory.cpp @@ -775,7 +775,6 @@ bool Buffer::create(bool alloc_local) { LogError("HSA Opaque Handle returned was null"); return false; } - deviceMemory_ = reinterpret_cast(amd::Memory::MemoryType::kPhyMemHandlePtr); return true; } diff --git a/projects/clr/rocclr/platform/memory.hpp b/projects/clr/rocclr/platform/memory.hpp index afda26623c..69f98111de 100644 --- a/projects/clr/rocclr/platform/memory.hpp +++ b/projects/clr/rocclr/platform/memory.hpp @@ -143,7 +143,6 @@ class Memory : public amd::RuntimeObject { enum MemoryType { kSvmMemoryPtr = 0x1, kArenaMemoryPtr = 0x100, - kPhyMemHandlePtr = 0x101 }; struct UserData