mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 22:06:05 +00:00
tsan: include internal allocator info in mem profile
We allocate things from the internal allocator, it's useful to know how much it consumes. Depends on D110150. Reviewed By: melver, vitalybuka Differential Revision: https://reviews.llvm.org/D110151
This commit is contained in:
parent
58a157cd3b
commit
b8aa9b0c37
@ -127,20 +127,24 @@ void WriteMemoryProfile(char *buf, uptr buf_size) {
|
|||||||
StackDepotStats *stacks = StackDepotGetStats();
|
StackDepotStats *stacks = StackDepotGetStats();
|
||||||
uptr nthread, nlive;
|
uptr nthread, nlive;
|
||||||
ctx->thread_registry.GetNumberOfThreads(&nthread, &nlive);
|
ctx->thread_registry.GetNumberOfThreads(&nthread, &nlive);
|
||||||
|
uptr internal_stats[AllocatorStatCount];
|
||||||
|
internal_allocator()->GetStats(internal_stats);
|
||||||
// All these are allocated from the common mmap region.
|
// All these are allocated from the common mmap region.
|
||||||
mem[MemMmap] -= meta.mem_block + meta.sync_obj + stacks->allocated;
|
mem[MemMmap] -= meta.mem_block + meta.sync_obj + stacks->allocated +
|
||||||
|
internal_stats[AllocatorStatMapped];
|
||||||
if (s64(mem[MemMmap]) < 0)
|
if (s64(mem[MemMmap]) < 0)
|
||||||
mem[MemMmap] = 0;
|
mem[MemMmap] = 0;
|
||||||
internal_snprintf(buf, buf_size,
|
internal_snprintf(
|
||||||
"RSS %zd MB: shadow:%zd meta:%zd file:%zd mmap:%zd"
|
buf, buf_size,
|
||||||
" trace:%zd heap:%zd other:%zd memblocks:%zd syncobj:%zu"
|
"RSS %zd MB: shadow:%zd meta:%zd file:%zd mmap:%zd"
|
||||||
" stacks=%zd[%zd] nthr=%zd/%zd\n",
|
" trace:%zd heap:%zd other:%zd intalloc:%zd memblocks:%zd syncobj:%zu"
|
||||||
mem[MemTotal] >> 20, mem[MemShadow] >> 20,
|
" stacks=%zd[%zd] nthr=%zd/%zd\n",
|
||||||
mem[MemMeta] >> 20, mem[MemFile] >> 20, mem[MemMmap] >> 20,
|
mem[MemTotal] >> 20, mem[MemShadow] >> 20, mem[MemMeta] >> 20,
|
||||||
mem[MemTrace] >> 20, mem[MemHeap] >> 20,
|
mem[MemFile] >> 20, mem[MemMmap] >> 20, mem[MemTrace] >> 20,
|
||||||
mem[MemOther] >> 20, meta.mem_block >> 20,
|
mem[MemHeap] >> 20, mem[MemOther] >> 20,
|
||||||
meta.sync_obj >> 20, stacks->allocated >> 20,
|
internal_stats[AllocatorStatMapped] >> 20, meta.mem_block >> 20,
|
||||||
stacks->n_uniq_ids, nlive, nthread);
|
meta.sync_obj >> 20, stacks->allocated >> 20, stacks->n_uniq_ids, nlive,
|
||||||
|
nthread);
|
||||||
}
|
}
|
||||||
|
|
||||||
# if SANITIZER_LINUX
|
# if SANITIZER_LINUX
|
||||||
|
Loading…
x
Reference in New Issue
Block a user