[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
Loading
Please sign in to comment