From c1e072980dceac5ecf563af98536adc27000f49b Mon Sep 17 00:00:00 2001 From: kjayapra-amd Date: Fri, 22 May 2020 17:56:21 -0400 Subject: [PATCH] SWDEV-237467 - Return proper hip error codes incase of ROCclr IPC API failures. Change-Id: I1d018918ed71f6d80846b3017f7a15f4ab496554 [ROCm/clr commit: 53a890b4991a285d6b57bd35da80747196725b42] --- projects/clr/rocclr/device/device.hpp | 2 +- projects/clr/rocclr/device/rocm/rocmemory.cpp | 6 ++++-- projects/clr/rocclr/device/rocm/rocmemory.hpp | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) mode change 100644 => 100755 projects/clr/rocclr/device/device.hpp mode change 100644 => 100755 projects/clr/rocclr/device/rocm/rocmemory.cpp mode change 100644 => 100755 projects/clr/rocclr/device/rocm/rocmemory.hpp diff --git a/projects/clr/rocclr/device/device.hpp b/projects/clr/rocclr/device/device.hpp old mode 100644 new mode 100755 index 1488536688..7f2f2c048b --- a/projects/clr/rocclr/device/device.hpp +++ b/projects/clr/rocclr/device/device.hpp @@ -761,7 +761,7 @@ class Memory : public amd::HeapObject { //! Returns CPU pointer to HW state virtual const address cpuSrd() const { return nullptr; } - virtual void IpcCreate(size_t offset, size_t* mem_size, void* handle) const { + virtual bool IpcCreate(size_t offset, size_t* mem_size, void* handle) const { ShouldNotReachHere(); } diff --git a/projects/clr/rocclr/device/rocm/rocmemory.cpp b/projects/clr/rocclr/device/rocm/rocmemory.cpp old mode 100644 new mode 100755 index 2d1bb8b00b..0db2ca2a25 --- a/projects/clr/rocclr/device/rocm/rocmemory.cpp +++ b/projects/clr/rocclr/device/rocm/rocmemory.cpp @@ -190,7 +190,7 @@ void* Memory::cpuMap(device::VirtualDevice& vDev, uint flags, uint startLayer, u return mapTarget; } -void Memory::IpcCreate(size_t offset, size_t* mem_size, void* handle) const { +bool Memory::IpcCreate(size_t offset, size_t* mem_size, void* handle) const { void* dev_ptr = nullptr; hsa_status_t hsa_status = HSA_STATUS_SUCCESS; @@ -213,8 +213,10 @@ void Memory::IpcCreate(size_t offset, size_t* mem_size, void* handle) const { if (hsa_status != HSA_STATUS_SUCCESS) { LogPrintfError("Failed to create memory for IPC, failed with hsa_status: %d \n", hsa_status); - return; + return false; } + + return true; } void Memory::cpuUnmap(device::VirtualDevice& vDev) { diff --git a/projects/clr/rocclr/device/rocm/rocmemory.hpp b/projects/clr/rocclr/device/rocm/rocmemory.hpp old mode 100644 new mode 100755 index 3936a468ef..96be5c0f56 --- a/projects/clr/rocclr/device/rocm/rocmemory.hpp +++ b/projects/clr/rocclr/device/rocm/rocmemory.hpp @@ -108,7 +108,7 @@ class Memory : public device::Memory { void* PersistentHostPtr() const { return persistent_host_ptr_; } - void IpcCreate (size_t offset, size_t* mem_size, void* handle) const override; + bool IpcCreate (size_t offset, size_t* mem_size, void* handle) const override; //! Validates allocated memory for possible workarounds virtual bool ValidateMemory() { return true; }