aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/BranchRelaxation.cpp
diff options
context:
space:
mode:
authorChia-hung Duan <chiahungduan@google.com>2023-08-21 17:26:41 +0000
committerChia-hung Duan <chiahungduan@google.com>2023-08-21 17:26:42 +0000
commit5f771c9936b828d5fc017ad558e84702500df99c (patch)
treed0e67a762ba47f0f9bb5e8172fd9b9b526044243 /llvm/lib/CodeGen/BranchRelaxation.cpp
parent634b2fd2cac251e2d645dadc6b00a2b2b80a08d0 (diff)
downloadllvm-5f771c9936b828d5fc017ad558e84702500df99c.zip
llvm-5f771c9936b828d5fc017ad558e84702500df99c.tar.gz
llvm-5f771c9936b828d5fc017ad558e84702500df99c.tar.bz2
[scudo] Support dumping fragmentation data in SizeClassAllocator64
This tells the number of pages that still have blocks in-used, i.e., those pages can't do releaseToOSMaybe(). Along with the information of getStats() and RSS usage from the system (like smaps), we can tell if the heuristic in releaseToOSMaybe() works well in certain scenarios. Here's the sample output: ``` Fragmentation Stats: SizeClassAllocator64: page size = 4096 01 ( 32): inuse/total blocks: 275/ 416 inuse/total pages: 4/ 4 inuse bytes: 16K 02 ( 48): inuse/total blocks: 182/ 312 inuse/total pages: 4/ 4 inuse bytes: 16K 03 ( 64): inuse/total blocks: 169/ 312 inuse/total pages: 5/ 5 inuse bytes: 20K ... 32 ( 1040): inuse/total blocks: 90/ 152 inuse/total pages: 37/ 39 inuse bytes: 148K 33 ( 1168): inuse/total blocks: 136/ 232 inuse/total pages: 64/ 67 inuse bytes: 256K 34 ( 1296): inuse/total blocks: 138/ 226 inuse/total pages: 68/ 72 inuse bytes: 272K 35 ( 1424): inuse/total blocks: 140/ 232 inuse/total pages: 78/ 81 inuse bytes: 312K 36 ( 1552): inuse/total blocks: 157/ 248 inuse/total pages: 89/ 94 inuse bytes: 356K ... ``` SizeClassAllocator32 requires further refactoring to support this. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D158225
Diffstat (limited to 'llvm/lib/CodeGen/BranchRelaxation.cpp')
0 files changed, 0 insertions, 0 deletions