[all-commits] [llvm/llvm-project] 0fb2ae: Use u16 to store Count/MaxCount
ChiaHungDuan via All-commits
all-commits at lists.llvm.org
Thu Oct 13 16:35:28 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0fb2aeef5310eaba2915b30810464a744a80da15
https://github.com/llvm/llvm-project/commit/0fb2aeef5310eaba2915b30810464a744a80da15
Author: Chia-hung Duan <chiahungduan at google.com>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M compiler-rt/lib/scudo/standalone/local_cache.h
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/release.h
M compiler-rt/lib/scudo/standalone/size_class_map.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
M compiler-rt/lib/scudo/standalone/tests/release_test.cpp
M compiler-rt/lib/scudo/standalone/tests/size_class_map_test.cpp
M compiler-rt/lib/scudo/standalone/tools/compute_size_class_config.cpp
Log Message:
-----------
Use u16 to store Count/MaxCount
The Count/MaxCount used in TransferBatch and PerClass can be fit in u16 in
current configurations and it's also reasonable to have a u16 limit. The
spare 16 bits will be used for additional status like pages mapping
status in a TransferBatch.
Reviewed By: cryptoad, cferris, vitalybuka
Differential Revision: https://reviews.llvm.org/D133145
Commit: 56dafd024ca7f586a31be3ee858e6b3588a1e131
https://github.com/llvm/llvm-project/commit/56dafd024ca7f586a31be3ee858e6b3588a1e131
Author: Chia-hung Duan <chiahungduan at google.com>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/release.cpp
M compiler-rt/lib/scudo/standalone/release.h
M compiler-rt/lib/scudo/standalone/tests/release_test.cpp
Log Message:
-----------
[scudo] Add PageReleaseContext to convey page usage status.
PageReleaseContext contains all the information needed for determing if
a page can be released. Splitting out the context increases the flexibility
of heterogenous free lists in the future. Also rename PackedCounterArray to
PageMap.
Reviewed By: cryptoad, cferris
Differential Revision: https://reviews.llvm.org/D133895
Commit: cf9d7f55d3bec7640fa8b2f8ec1d9c1268233caa
https://github.com/llvm/llvm-project/commit/cf9d7f55d3bec7640fa8b2f8ec1d9c1268233caa
Author: Chia-hung Duan <chiahungduan at google.com>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M compiler-rt/lib/scudo/standalone/allocator_config.h
M compiler-rt/lib/scudo/standalone/list.h
M compiler-rt/lib/scudo/standalone/local_cache.h
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tests/list_test.cpp
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
Log Message:
-----------
[scudo] Manage free blocks in BatchGroup.
Scudo is supposed to allocate any blocks across the entired mapped
pages and each page is equally likely to be selected. Which means Scudo
is leaning to touch as many pages as possible. This brings better
security but it also sacrifices the chance of releasing dirty pages.
To alleviate the unmanagable footprint growing, this CL introduces the
BatchGroup concept. Each blocks will be classified into a BatchGroup
according to its address. While allocation, we are leaning to allocate
blocks in the same group first. Note that the blocks selected from a
group is still random over several pages. At the same time, we have
better prediction of dirty page growing speed. Besides, we are able to
do partial page releasing by examing part of BatchGroups.
Reviewed By: cryptoad, cferris
Differential Revision: https://reviews.llvm.org/D133897
Commit: 9c26f51f5e178ac0fda98419e3a61d205d3b58b1
https://github.com/llvm/llvm-project/commit/9c26f51f5e178ac0fda98419e3a61d205d3b58b1
Author: Chia-hung Duan <chiahungduan at google.com>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M compiler-rt/lib/scudo/standalone/local_cache.h
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[scudo] Support partial page releasing
Block grouping enables us doing partial page releasing so that we can
release the pages in a finer granularity. Which means we don't need to
visit all blocks to determine which pages are unused. Besides, this
means we can do incremental page releasing depends on the number fo free
blocks.
Reviewed By: cryptoad, cferris
Differential Revision: https://reviews.llvm.org/D134226
Compare: https://github.com/llvm/llvm-project/compare/3d8d9c9884db...9c26f51f5e17
More information about the All-commits
mailing list