From 844765d7e09dc86e95f267c05efa7799c7bcae9a Mon Sep 17 00:00:00 2001 From: Jaydeep Patel Date: Tue, 27 Feb 2024 06:43:32 +0000 Subject: [PATCH] SWDEV-447525 - maxSize param for Mem pool props. Change-Id: Ib743611a66921aeaa449b6622b933cc8b9190d87 [ROCm/clr commit: b72d8da1bdd6547c86baa119f1bacab4d418a5ea] --- projects/clr/hipamd/src/hip_mempool_impl.cpp | 3 +++ projects/clr/hipamd/src/hip_mempool_impl.hpp | 1 + 2 files changed, 4 insertions(+) diff --git a/projects/clr/hipamd/src/hip_mempool_impl.cpp b/projects/clr/hipamd/src/hip_mempool_impl.cpp index 44e23a91d9..8b30e89857 100644 --- a/projects/clr/hipamd/src/hip_mempool_impl.cpp +++ b/projects/clr/hipamd/src/hip_mempool_impl.cpp @@ -171,6 +171,9 @@ void* MemoryPool::AllocateMemory(size_t size, Stream* stream, void* dptr) { void* dev_ptr = nullptr; amd::Memory* memory = free_heap_.FindMemory(size, stream, Opportunistic(), dptr); if (memory == nullptr) { + if (Properties().maxSize != 0 && (max_total_size_ + size) > Properties().maxSize) { + return nullptr; + } amd::Context* context = device_->asContext(); const auto& dev_info = context->devices()[0]->info(); if (dev_info.maxMemAllocSize_ < size) { diff --git a/projects/clr/hipamd/src/hip_mempool_impl.hpp b/projects/clr/hipamd/src/hip_mempool_impl.hpp index e7469ff05d..971a174707 100644 --- a/projects/clr/hipamd/src/hip_mempool_impl.hpp +++ b/projects/clr/hipamd/src/hip_mempool_impl.hpp @@ -215,6 +215,7 @@ class MemoryPool : public amd::ReferenceCountedObject { .handleTypes = hipMemHandleTypeNone, .location = {.type = hipMemLocationTypeDevice, .id = device_->deviceId()}, .win32SecurityAttributes = nullptr, + .maxSize = 0; .reserved = {}}; } state_.interprocess_ = properties_.handleTypes != hipMemHandleTypeNone;