mmlr + bonefish:

* Add optional stack trace capturing for slab memory manager tracing.
* Add allocation tracking for the slab allocator (enabled via
  SLAB_ALLOCATION_TRACKING). The allocation tracking requires tracing
  with stack traces to be enabled for object caches and/or the memory
  manager.
  - Add class AllocationTrackingInfo that associates an allocation with
    its respective tracing entry. The structure is added to the end of
    an allocation done by the memory manager. For the object caches
    there's a separate array for each slab.
  - Add code range markers to the slab code, so that the first caller
    into the slab code can be retrieved from the stack traces.
  - Add KDL command "allocations_per_caller" that lists all allocations
    summarized by caller.
* Move debug definitions from slab_private.h to slab_debug.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43072 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2011-11-01 18:34:21 +00:00
parent 97ac7257f6
commit e1c6140eaa
13 changed files with 571 additions and 69 deletions
+4 -1
View File
@@ -42,7 +42,7 @@
#define DEBUG_FILE_MAP KDEBUG_LEVEL_1
// heap
// heap / slab
// Initialize newly allocated memory with something non zero.
#define PARANOID_KERNEL_MALLOC KDEBUG_LEVEL_2
@@ -57,6 +57,9 @@
// Enables the "allocations*" debugger commands.
#define KERNEL_HEAP_LEAK_CHECK 0
// Enables the "allocations*" debugger commands for the slab.
#define SLAB_ALLOCATION_TRACKING 0
// interrupts
+1
View File
@@ -47,6 +47,7 @@
#define SCHEDULING_ANALYSIS_TRACING 0
#define SIGNAL_TRACING 0
#define SLAB_MEMORY_MANAGER_TRACING 0
#define SLAB_MEMORY_MANAGER_TRACING_STACK_TRACE 0 /* stack trace depth */
#define SLAB_OBJECT_CACHE_TRACING 0
#define SLAB_OBJECT_CACHE_TRACING_STACK_TRACE 0 /* stack trace depth */
#define SWAP_TRACING 0