summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java11
-rw-r--r--services/core/java/com/android/server/am/OomAdjuster.java11
2 files changed, 16 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 3c95b9a02557..74437cd3c2ef 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -8274,7 +8274,16 @@ public class ActivityManagerService extends IActivityManager.Stub
setThreadScheduler(proc.getRenderThreadTid(),
SCHED_FIFO | SCHED_RESET_ON_FORK, 1);
} else {
- setThreadPriority(proc.getRenderThreadTid(), THREAD_PRIORITY_TOP_APP_BOOST);
+ if (Flags.resetOnForkEnabled()) {
+ if (Process.getThreadScheduler(proc.getRenderThreadTid())
+ == Process.SCHED_OTHER) {
+ Process.setThreadScheduler(proc.getRenderThreadTid(),
+ Process.SCHED_OTHER | Process.SCHED_RESET_ON_FORK,
+ 0);
+ }
+ }
+ setThreadPriority(proc.getRenderThreadTid(),
+ THREAD_PRIORITY_TOP_APP_BOOST);
}
}
} else {
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 796de1982fe5..4073ab848f81 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -459,12 +459,13 @@ public class OomAdjuster {
void setThreadPriority(int tid, int priority) {
if (Flags.resetOnForkEnabled()) {
- Process.setThreadScheduler(tid,
- Process.SCHED_OTHER | Process.SCHED_RESET_ON_FORK,
- priority);
- } else {
- Process.setThreadPriority(tid, priority);
+ if (Process.getThreadScheduler(tid) == Process.SCHED_OTHER) {
+ Process.setThreadScheduler(tid,
+ Process.SCHED_OTHER | Process.SCHED_RESET_ON_FORK,
+ 0);
+ }
}
+ Process.setThreadPriority(tid, priority);
}
}