Add: Allocation path tracking for debugging
Added HAK_RET_ALLOC_BLOCK_TRACED macro with path identifiers: - ALLOC_PATH_BACKEND (1): SuperSlab backend allocation - ALLOC_PATH_TLS_POP (2): TLS SLL pop - ALLOC_PATH_CARVE (3): Linear carve - ALLOC_PATH_FREELIST (4): Freelist pop - ALLOC_PATH_HOTMAG (5): Hot magazine - ALLOC_PATH_FASTCACHE (6): Fast cache - ALLOC_PATH_BUMP (7): Bump allocator - ALLOC_PATH_REFILL (8): Refill/adoption Usage: HAKMEM_ALLOC_PATH_TRACE=1 ./larson_hakmem ... Logs first 20 allocations with path ID for debugging. Updated SuperSlab backend to use traced version. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -62,7 +62,7 @@ void* hak_tiny_alloc_superslab_backend_legacy(int class_idx)
|
||||
|
||||
meta->used++;
|
||||
atomic_fetch_add_explicit(&chunk->total_active_blocks, 1, memory_order_relaxed);
|
||||
HAK_RET_ALLOC_BLOCK(class_idx, base);
|
||||
HAK_RET_ALLOC_BLOCK_TRACED(class_idx, base, ALLOC_PATH_BACKEND);
|
||||
}
|
||||
}
|
||||
chunk = chunk->next_chunk;
|
||||
@ -102,7 +102,7 @@ void* hak_tiny_alloc_superslab_backend_legacy(int class_idx)
|
||||
|
||||
meta->used++;
|
||||
atomic_fetch_add_explicit(&new_chunk->total_active_blocks, 1, memory_order_relaxed);
|
||||
HAK_RET_ALLOC_BLOCK(class_idx, base);
|
||||
HAK_RET_ALLOC_BLOCK_TRACED(class_idx, base, ALLOC_PATH_BACKEND);
|
||||
}
|
||||
}
|
||||
|
||||
@ -205,7 +205,7 @@ void* hak_tiny_alloc_superslab_backend_shared(int class_idx)
|
||||
meta->used++;
|
||||
atomic_fetch_add_explicit(&ss->total_active_blocks, 1, memory_order_relaxed);
|
||||
|
||||
HAK_RET_ALLOC_BLOCK(class_idx, base);
|
||||
HAK_RET_ALLOC_BLOCK_TRACED(class_idx, base, ALLOC_PATH_BACKEND);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user