e1c6140eaa
* 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
68 lines
2.2 KiB
C
68 lines
2.2 KiB
C
#ifndef KERNEL_TRACING_CONFIG_H
|
|
#define KERNEL_TRACING_CONFIG_H
|
|
|
|
// general settings
|
|
|
|
// enable tracing (0/1)
|
|
#ifndef ENABLE_TRACING
|
|
# define ENABLE_TRACING 0
|
|
#endif
|
|
|
|
// tracing buffer size (in bytes)
|
|
#ifndef MAX_TRACE_SIZE
|
|
# define MAX_TRACE_SIZE (20 * 1024 * 1024)
|
|
#endif
|
|
|
|
|
|
#if ENABLE_TRACING
|
|
|
|
// macros specifying the tracing level for individual components (0 is disabled)
|
|
|
|
#define AHCI_PORT_TRACING 0
|
|
#define ATA_DMA_TRACING 0
|
|
#define ATA_TRACING 0
|
|
#define ATAPI_TRACING 0
|
|
#define BFS_TRACING 0
|
|
#define BLOCK_CACHE_BLOCK_TRACING 0
|
|
#define BLOCK_CACHE_TRANSACTION_TRACING 0
|
|
#define BMESSAGE_TRACING 0
|
|
#define FILE_DESCRIPTOR_TRACING 0
|
|
#define FILE_DESCRIPTOR_TRACING_STACK_TRACE 0 /* stack trace depth */
|
|
#define IO_CONTEXT_TRACING 0
|
|
#define IO_CONTEXT_TRACING_STACK_TRACE 0 /* stack trace depth */
|
|
#define KERNEL_HEAP_TRACING 0
|
|
#define KTRACE_PRINTF_STACK_TRACE 0 /* stack trace depth */
|
|
#define NET_BUFFER_TRACING 0
|
|
#define NET_BUFFER_TRACING_STACK_TRACE 0 /* stack trace depth */
|
|
#define PAGE_ALLOCATION_TRACING 0
|
|
#define PAGE_DAEMON_TRACING 0
|
|
#define PAGE_STATE_TRACING 0
|
|
#define PAGE_STATE_TRACING_STACK_TRACE 0 /* stack trace depth */
|
|
#define PAGE_WRITER_TRACING 0
|
|
#define PARANOIA_TRACING 0
|
|
#define PARANOIA_TRACING_STACK_TRACE 0 /* stack trace depth */
|
|
#define PORT_TRACING 0
|
|
#define RUNTIME_LOADER_TRACING 0
|
|
#define SCHEDULER_TRACING 0
|
|
#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
|
|
#define SYSCALL_TRACING 0
|
|
#define SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT 1
|
|
#define TCP_TRACING 0
|
|
#define TEAM_TRACING 0
|
|
#define USER_MALLOC_TRACING 0
|
|
#define VFS_PAGES_IO_TRACING 0
|
|
#define VM_CACHE_TRACING 0
|
|
#define VM_CACHE_TRACING_STACK_TRACE 0 /* stack trace depth */
|
|
#define VM_PAGE_FAULT_TRACING 0
|
|
#define WAIT_FOR_OBJECTS_TRACING 0
|
|
|
|
#endif // ENABLE_TRACING
|
|
|
|
#endif // KERNEL_TRACING_CONFIG_H
|