summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Narayan Kamath <narayan@google.com> 2017-02-15 10:15:12 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-02-15 10:15:16 +0000
commit83e0faf2cc0b69bdba17d7a11f7deda922060e73 (patch)
tree9d3cc287d735ba147e79c35c2f225570f1eb311d
parent816540180f76ddd765805c1b8b905488fcd0c19b (diff)
parentb49996d8e2658ea2d62cd19d28edd70b2b22f605 (diff)
Merge "Zygote: Reset niceness if lazy preloading is enabled."
-rw-r--r--core/java/com/android/internal/os/Zygote.java4
-rw-r--r--core/java/com/android/internal/os/ZygoteInit.java2
-rw-r--r--core/jni/com_android_internal_os_Zygote.cpp8
3 files changed, 13 insertions, 1 deletions
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index 59416dd06cdc..fa71a628e3ca 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -173,6 +173,10 @@ public final class Zygote {
VM_HOOKS.postForkChild(debugFlags, isSystemServer, instructionSet);
}
+ /**
+ * Resets this process' priority to the default value (0).
+ */
+ native static void nativeResetNicePriority();
/**
* Executes "/system/bin/sh -c &lt;command&gt;" using the exec() system call.
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index a72b66a6f255..1fb31b485325 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -712,6 +712,8 @@ public class ZygoteInit {
EventLog.writeEvent(LOG_BOOT_PROGRESS_PRELOAD_END,
SystemClock.uptimeMillis());
bootTimingsTraceLog.traceEnd(); // ZygotePreload
+ } else {
+ Zygote.nativeResetNicePriority();
}
// Finish profiling the zygote initialization.
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index e2fc44460dcd..c3f0e9d81944 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -806,6 +806,10 @@ static void com_android_internal_os_Zygote_nativeUnmountStorageOnInit(JNIEnv* en
UnmountTree("/storage");
}
+static void com_android_internal_os_Zygote_nativeResetNicePriority(JNIEnv* env, jclass) {
+ ResetNicePriority(env);
+}
+
static const JNINativeMethod gMethods[] = {
{ "nativeForkAndSpecialize",
"(II[II[[IILjava/lang/String;Ljava/lang/String;[I[ILjava/lang/String;Ljava/lang/String;)I",
@@ -815,7 +819,9 @@ static const JNINativeMethod gMethods[] = {
{ "nativeAllowFileAcrossFork", "(Ljava/lang/String;)V",
(void *) com_android_internal_os_Zygote_nativeAllowFileAcrossFork },
{ "nativeUnmountStorageOnInit", "()V",
- (void *) com_android_internal_os_Zygote_nativeUnmountStorageOnInit }
+ (void *) com_android_internal_os_Zygote_nativeUnmountStorageOnInit },
+ { "nativeResetNicePriority", "()V",
+ (void *) com_android_internal_os_Zygote_nativeResetNicePriority }
};
int register_com_android_internal_os_Zygote(JNIEnv* env) {