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.
This commit is contained in:
@@ -232,8 +232,8 @@ ObjectCache::ReturnObjectToSlab(slab* source, void* object, uint32 flags)
|
|||||||
partial.Remove(source);
|
partial.Remove(source);
|
||||||
|
|
||||||
if (empty_count < pressure
|
if (empty_count < pressure
|
||||||
&& total_objects - used_count - source->size
|
|| (total_objects - (used_count + source->size))
|
||||||
>= min_object_reserve) {
|
< min_object_reserve) {
|
||||||
empty_count++;
|
empty_count++;
|
||||||
empty.Add(source);
|
empty.Add(source);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user