diff options
| author | 2020-01-31 16:30:20 +0000 | |
|---|---|---|
| committer | 2020-01-31 16:30:20 +0000 | |
| commit | c1fa69a24d2ee885aea3e5addbdec014ffa1c6a3 (patch) | |
| tree | 9d429644fd71d1274f6132f164f160b04b36422f | |
| parent | aad8e7b1610c7bfc93abd44d9790174109ba1f65 (diff) | |
| parent | 0b242c8d77c329e1c3bc28475e86120026212b99 (diff) | |
Merge "Purge unused native memory before Zygote fork events" am: 0b242c8d77
Change-Id: I5847d92691c7716dbc48a9bcdd05f33dbef98d9f
| -rw-r--r-- | core/jni/com_android_internal_os_Zygote.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 486df621f4f1..a09c0b38eb2d 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -1000,6 +1000,13 @@ static pid_t ForkCommon(JNIEnv* env, bool is_system_server, android_fdsan_error_level fdsan_error_level = android_fdsan_get_error_level(); + // Purge unused native memory in an attempt to reduce the amount of false + // sharing with the child process. By reducing the size of the libc_malloc + // region shared with the child process we reduce the number of pages that + // transition to the private-dirty state when malloc adjusts the meta-data + // on each of the pages it is managing after the fork. + mallopt(M_PURGE, 0); + pid_t pid = fork(); if (pid == 0) { |