SWDEV-522707 - Set phys_mem_handle type to sizeof(size_t) to avoid blocking address range. (#105)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
b2388dfb88
Коммит
6811fd90b8
@@ -788,6 +788,10 @@ bool Buffer::create(bool alloc_local) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Update the size of memory object to size of handle, since the setting the size to the actual
|
||||
// physical memory allocated would block the address range during amd::MemObjMap::FindMemObj()
|
||||
// lookup. This might cause address range issue in virtual address space.
|
||||
owner()->UpdatePhysMemSize();
|
||||
owner()->setSvmPtr(reinterpret_cast<void*>(owner()->getUserData().hsa_handle));
|
||||
|
||||
return true;
|
||||
|
||||
@@ -254,7 +254,6 @@ class Memory : public amd::RuntimeObject {
|
||||
|
||||
//! Initializes the device memory array
|
||||
virtual void initDeviceMemory();
|
||||
|
||||
void setSize(size_t size) { size_ = size; }
|
||||
void setInteropObj(InteropObject* obj) { interopObj_ = obj; }
|
||||
|
||||
@@ -339,6 +338,13 @@ class Memory : public amd::RuntimeObject {
|
||||
Flags getMemFlags() const { return flags_; }
|
||||
Type getType() const { return type_; }
|
||||
|
||||
//! Update phys mem size to the handle, only when the ROCCLR_MEM_PHYSMEM flag is set.
|
||||
void UpdatePhysMemSize() {
|
||||
if (flags_ & ROCCLR_MEM_PHYMEM) {
|
||||
size_ = sizeof(getUserData().hsa_handle);
|
||||
}
|
||||
}
|
||||
|
||||
const Device* getLastWriter() { return lastWriter_; }
|
||||
const HostMemoryReference* getHostMemRef() const { return &hostMemRef_; }
|
||||
void* getHostMem() const { return hostMemRef_.hostMem(); }
|
||||
|
||||
Ссылка в новой задаче
Block a user