[scudo] Early exit from the case can't do page release.
There are heuristics to avoid marking blocks if there's little chance to release pages. So far, those logics only exist in block-marking section and we didn't leverage the results of those logics. For example, in a round of releaseToOS try, we know it's still 128 KB away from the release threshold. In the next round of releaseToOS, we can early exit if the number of pushed bytes is smaller than 128 KB without looping each memory group. This CL adds this heuristic and has reduced amount of time in checking the status of each memory group. This CL only applies this heuristic on SizeClassAllocator64. SizeClassAllocator32 has a smaller region/group size and has little impact on the default value. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D146312
Loading
Please sign in to comment