From a2694db7517287a6e69e0ada669f97893c701e8b Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Mon, 4 Nov 2024 16:07:39 -0500 Subject: [PATCH] kernel/slab: Check both pressure and min_object_reserve before returning slabs. Otherwise, if the pressure is low, then we won't properly respect the min_object_reserve. --- src/system/kernel/slab/ObjectCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/slab/ObjectCache.cpp b/src/system/kernel/slab/ObjectCache.cpp index 1b60e9c2a0..0ff1195bd4 100644 --- a/src/system/kernel/slab/ObjectCache.cpp +++ b/src/system/kernel/slab/ObjectCache.cpp @@ -232,8 +232,8 @@ ObjectCache::ReturnObjectToSlab(slab* source, void* object, uint32 flags) partial.Remove(source); if (empty_count < pressure - && total_objects - used_count - source->size - >= min_object_reserve) { + || (total_objects - (used_count + source->size)) + < min_object_reserve) { empty_count++; empty.Add(source); } else {