Zygote: disable heap 0'ing in apps.
Uninitialized memory back by popular demand.
We have trialed heap 0'ing (malloc is calloc) in Android for a few days
in all processes, but there are a couple of signs that doing this in app
processes may be too ambitious.
Bug: 170891666
Bug: 131355925
Test: boot, see disable logs
Change-Id: I60563712c8af459f2f847b4598477b042a05d7ea
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index dadf08f..95c295a4 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -80,6 +80,7 @@
#include <bionic/mte.h>
#include <bionic/mte_kernel.h>
#include <cutils/fs.h>
+#include <cutils/memory.h>
#include <cutils/multiuser.h>
#include <cutils/sockets.h>
#include <private/android_filesystem_config.h>
@@ -647,6 +648,13 @@
// Set the jemalloc decay time to 1.
mallopt(M_DECAY_TIME, 1);
+
+ // Avoid potentially expensive memory mitigations, mostly meant for system
+ // processes, in apps. These may cause app compat problems, use more memory,
+ // or reduce performance. While it would be nice to have them for apps,
+ // we will have to wait until they are proven out, have more efficient
+ // hardware, and/or apply them only to new applications.
+ process_disable_memory_mitigations();
}
static void SetUpSeccompFilter(uid_t uid, bool is_child_zygote) {