[compiler-rt] 92d0d6f - [scudo] Do a M_PURGE call before changing release interval on Android (#87110)

via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 1 10:09:44 PDT 2024


Author: ChiaHungDuan
Date: 2024-04-01T10:09:40-07:00
New Revision: 92d0d6f6cb4099e651d066cd88dc0abfa6e612cf

URL: https://github.com/llvm/llvm-project/commit/92d0d6f6cb4099e651d066cd88dc0abfa6e612cf
DIFF: https://github.com/llvm/llvm-project/commit/92d0d6f6cb4099e651d066cd88dc0abfa6e612cf.diff

LOG: [scudo] Do a M_PURGE call before changing release interval on Android (#87110)

Added: 
    

Modified: 
    compiler-rt/lib/scudo/standalone/wrappers_c.inc

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/scudo/standalone/wrappers_c.inc b/compiler-rt/lib/scudo/standalone/wrappers_c.inc
index 56d8ef20156e28..21d5b7add51275 100644
--- a/compiler-rt/lib/scudo/standalone/wrappers_c.inc
+++ b/compiler-rt/lib/scudo/standalone/wrappers_c.inc
@@ -247,6 +247,11 @@ void SCUDO_PREFIX(malloc_postinit)() {
 INTERFACE WEAK int SCUDO_PREFIX(mallopt)(int param, int value) {
   if (param == M_DECAY_TIME) {
     if (SCUDO_ANDROID) {
+      // Before changing the interval, reset the memory usage status by doing a
+      // M_PURGE call so that we can minimize the impact of any unreleased pages
+      // introduced by interval transition.
+      SCUDO_ALLOCATOR.releaseToOS(scudo::ReleaseToOS::Force);
+
       if (value == 0) {
         // Will set the release values to their minimum values.
         value = INT32_MIN;


        


More information about the llvm-commits mailing list