[Zion] Cleanup memory debug statistics slightly.

This commit is contained in:
Drew Galbraith 2023-11-15 13:10:53 -08:00
parent 10d16e129f
commit 92d8a02291
2 changed files with 21 additions and 32 deletions

View File

@ -3,7 +3,7 @@
#include "debug/debug.h" #include "debug/debug.h"
#include "memory/paging_util.h" #include "memory/paging_util.h"
#define K_HEAP_DEBUG 1 #define K_HEAP_DEBUG 0
namespace { namespace {
@ -104,11 +104,6 @@ void KernelHeap::DumpDebugDataInternal() {
dbgln(""); dbgln("");
dbgln("Heap Debug Statistics!"); dbgln("Heap Debug Statistics!");
dbgln("Pages used: {}",
(next_addr_ - kKernelBuddyHeapStart - 1) / 0x1000 + 1);
// Active Allocs.
dbgln("Active Allocations: {}", alloc_count_);
dbgln("Slab Statistics:"); dbgln("Slab Statistics:");
dbgln("Slab 8: {} slabs, {} allocs", slab_8_.SlabCount(), dbgln("Slab 8: {} slabs, {} allocs", slab_8_.SlabCount(),
slab_8_.Allocations()); slab_8_.Allocations());
@ -123,25 +118,25 @@ void KernelHeap::DumpDebugDataInternal() {
dbgln(""); dbgln("");
dbgln("Size Distributions of non slab-allocated."); dbgln("Size Distributions of non slab-allocated.");
dbgln("<=8B: {}", distributions[0]); dbgln("Pages used: {}",
dbgln("<=16B: {}", distributions[1]); (next_addr_ - kKernelBuddyHeapStart - 1) / 0x1000 + 1);
dbgln("<=32B: {}", distributions[2]); // Active Allocs.
dbgln("<=64B: {}", distributions[3]); dbgln("Active Allocations: {}", alloc_count_);
dbgln("<=128B: {}", distributions[4]);
dbgln("<=256B: {}", distributions[5]); dbgln("<=256B: {}", distributions[0]);
dbgln("<=512B: {}", distributions[6]); dbgln("<=512B: {}", distributions[1]);
dbgln("<=1KiB: {}", distributions[7]); dbgln("<=1KiB: {}", distributions[2]);
dbgln("<=2KiB: {}", distributions[8]); dbgln("<=2KiB: {}", distributions[3]);
dbgln("<=4KiB: {}", distributions[9]); dbgln("<=4KiB: {}", distributions[4]);
dbgln("> 4KiB: {}", distributions[10]); dbgln("> 4KiB: {}", distributions[5]);
dbgln(""); dbgln("");
} }
void KernelHeap::RecordSize(uint64_t size) { void KernelHeap::RecordSize(uint64_t size) {
size -= 1; size -= 1;
size >>= 3; size >>= 8;
uint64_t index = 0; uint64_t index = 0;
while (size && index < 11) { while (size && index < 5) {
size >>= 1; size >>= 1;
index++; index++;
} }

View File

@ -29,19 +29,13 @@ class KernelHeap {
SlabAllocator slab_64_{64}; SlabAllocator slab_64_{64};
SlabAllocator slab_128_{128}; SlabAllocator slab_128_{128};
// Distribution collection for the purpose of investigating a slab allocator. // 0: 128B-256B
// 0: 0-8B // 1: 256B-512B
// 1: 8B-16B // 2: 512B-1KiB
// 2: 16B-32B // 3: 1KiB-2KiB
// 3: 32B-64B // 4: 2KiB-4KiB
// 4: 64B-128B // 5: 4KiB+
// 5: 128B-256B uint64_t distributions[6];
// 6: 256B-512B
// 7: 512B-1KiB
// 8: 1KiB-2KiB
// 9: 2KiB-4KiB
// 10: 4KiB+
uint64_t distributions[11];
void RecordSize(uint64_t size); void RecordSize(uint64_t size);