diff --git a/src/system/kernel/slab/ObjectCache.cpp b/src/system/kernel/slab/ObjectCache.cpp index de6cbb5caf..3a6a157298 100644 --- a/src/system/kernel/slab/ObjectCache.cpp +++ b/src/system/kernel/slab/ObjectCache.cpp @@ -166,9 +166,6 @@ ObjectCache::InitSlab(slab* slab, void* pages, size_t byteCount, uint32 flags) data += object_size; } - usage += slab_size; - total_objects += slab->size; - return slab; } diff --git a/src/system/kernel/slab/Slab.cpp b/src/system/kernel/slab/Slab.cpp index 7a97ba332c..efb77f61fd 100644 --- a/src/system/kernel/slab/Slab.cpp +++ b/src/system/kernel/slab/Slab.cpp @@ -232,6 +232,7 @@ dump_cache_info(int argc, char* argv[]) kprintf("lock: %p\n", &cache->lock); kprintf("object_size: %lu\n", cache->object_size); kprintf("cache_color_cycle: %lu\n", cache->cache_color_cycle); + kprintf("total_objects: %lu\n", cache->total_objects); kprintf("used_count: %lu\n", cache->used_count); kprintf("empty_count: %lu\n", cache->empty_count); kprintf("pressure: %lu\n", cache->pressure); @@ -362,6 +363,9 @@ object_cache_reserve_internal(ObjectCache* cache, size_t objectCount, return B_NO_MEMORY; } + cache->usage += cache->slab_size; + cache->total_objects += newSlab->size; + cache->empty.Add(newSlab); cache->empty_count++; }