aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJoshua Baehring <98630690+JoshuaMBa@users.noreply.github.com>2024-08-26 13:44:39 -0400
committerGitHub <noreply@github.com>2024-08-26 10:44:39 -0700
commit643bf6cb01bc3faa54c5510c904ea3bdcb4bf42f (patch)
tree1f7a67db4d4e5edb4c4ac26d7b3821a510662c80 /clang/lib/Frontend/CompilerInvocation.cpp
parentff5816ad29eba3762e1c5c576c1adf586c35dd91 (diff)
downloadllvm-643bf6cb01bc3faa54c5510c904ea3bdcb4bf42f.zip
llvm-643bf6cb01bc3faa54c5510c904ea3bdcb4bf42f.tar.gz
llvm-643bf6cb01bc3faa54c5510c904ea3bdcb4bf42f.tar.bz2
[scudo] Add partial chunk heuristic to retrieval algorithm. (#105009)
Previously the secondary cache retrieval algorithm would not allow retrievals of memory chunks where the number of unused bytes would be greater than than `MaxUnreleasedCachePages * PageSize` bytes. This meant that even if a memory chunk satisfied the requirements of the optimal fit algorithm, it may not be returned. This remains true if memory tagging is enabled. However, if memory tagging is disabled, a new heuristic has been put in place. Specifically, If a memory chunk is a non-optimal fit, the cache retrieval algorithm will attempt to release the excess memory to force a cache hit while keeping RSS down. In the event that a memory chunk is a non-optimal fit, the retrieval algorithm will release excess memory as long as the amount of memory to be released is less than or equal to 4 Pages. If the amount of memory to be released exceeds 4 Pages, the retrieval algorithm will not consider that cached memory chunk valid for retrieval. This change also addresses an alignment issue in a test case submitted in #104807.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions