[compiler-rt] [scudo] Apply the min release threshold to the group (PR #112014)

via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 11 09:09:21 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-compiler-rt-sanitizer

Author: None (ChiaHungDuan)

<details>
<summary>Changes</summary>

For the block smaller than a page size, one block is unlikely to introduce more unused pages (at most 2 if it acrosses the page boundary and both touched pages are unused). So it's better to apply the threshold to reduce the time of scanning groups that can't release any new pages.

---
Full diff: https://github.com/llvm/llvm-project/pull/112014.diff


1 Files Affected:

- (modified) compiler-rt/lib/scudo/standalone/primary64.h (+2) 


``````````diff
diff --git a/compiler-rt/lib/scudo/standalone/primary64.h b/compiler-rt/lib/scudo/standalone/primary64.h
index 97188a5ac235cc..1865ed41368e3c 100644
--- a/compiler-rt/lib/scudo/standalone/primary64.h
+++ b/compiler-rt/lib/scudo/standalone/primary64.h
@@ -1492,6 +1492,8 @@ template <typename Config> class SizeClassAllocator64 {
       }
 
       const uptr PushedBytesDelta = BytesInBG - BG->BytesInBGAtLastCheckpoint;
+      if (PushedBytesDelta < getMinReleaseAttemptSize(BlockSize))
+        continue;
 
       // Given the randomness property, we try to release the pages only if the
       // bytes used by free blocks exceed certain proportion of group size. Note

``````````

</details>


https://github.com/llvm/llvm-project/pull/112014


More information about the llvm-commits mailing list