From 8091b0a848e1debfa8291f5dc3e5b0d9a98b7b61 Mon Sep 17 00:00:00 2001 From: Petr Shumilov Date: Mon, 27 Apr 2026 17:50:58 +0300 Subject: [PATCH] Disable defragmentation for extra memory pools Signed-off-by: Petr Shumilov --- .../memory-resource/unsynchronized_pool_resource.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/runtime-common/core/memory-resource/unsynchronized_pool_resource.cpp b/runtime-common/core/memory-resource/unsynchronized_pool_resource.cpp index bd7a3c446b..9efce5dcfb 100644 --- a/runtime-common/core/memory-resource/unsynchronized_pool_resource.cpp +++ b/runtime-common/core/memory-resource/unsynchronized_pool_resource.cpp @@ -4,8 +4,10 @@ #include "runtime-common/core/memory-resource/unsynchronized_pool_resource.h" -#include "common/wrappers/likely.h" +#include +#include +#include "common/wrappers/likely.h" #include "runtime-common/core/memory-resource/details/memory_ordered_chunk_list.h" namespace memory_resource { @@ -37,7 +39,10 @@ void unsynchronized_pool_resource::perform_defragmentation() noexcept { details::memory_ordered_chunk_list mem_list{memory_begin_, memory_end_}; huge_pieces_.flush_to(mem_list); - if (const auto fallback_resource_left_size = fallback_resource_.size(); fallback_resource_left_size > 0) { + if (const auto fallback_resource_left_size{fallback_resource_.size()}; + fallback_resource_left_size > 0 && + !is_memory_from_extra_pool(fallback_resource_.memory_begin(), std::distance(reinterpret_cast(fallback_resource_.memory_begin()), + reinterpret_cast(fallback_resource_.memory_current())))) { mem_list.add_memory(fallback_resource_.memory_current(), fallback_resource_left_size); fallback_resource_.init(nullptr, 0); }