Increase UI and RenderThread priority when not using FIFO.
bug 30441279 Change-Id: I5714179236af59ce79dbe118c7870d5f1771168a
This commit is contained in:
@@ -12585,7 +12585,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
synchronized (mPidsSelfLocked) {
|
||||
int pid = Binder.getCallingPid();
|
||||
proc = mPidsSelfLocked.get(pid);
|
||||
if (mUseFifoUiScheduling && proc != null && proc.renderThreadTid == 0 && tid > 0) {
|
||||
if (proc != null && proc.renderThreadTid == 0 && tid > 0) {
|
||||
// ensure the tid belongs to the process
|
||||
if (!Process.isThreadInProcess(pid, tid)) {
|
||||
throw new IllegalArgumentException(
|
||||
@@ -12598,8 +12598,12 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
// promote to FIFO now
|
||||
if (proc.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP) {
|
||||
if (DEBUG_OOM_ADJ) Slog.d("UI_FIFO", "Promoting " + tid + "out of band");
|
||||
Process.setThreadScheduler(proc.renderThreadTid,
|
||||
Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
|
||||
if (mUseFifoUiScheduling) {
|
||||
Process.setThreadScheduler(proc.renderThreadTid,
|
||||
Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
|
||||
} else {
|
||||
Process.setThreadPriority(proc.renderThreadTid, -10);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (DEBUG_OOM_ADJ) {
|
||||
@@ -20294,6 +20298,12 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
Slog.d("UI_FIFO", "Not setting RenderThread TID");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Boost priority for top app UI and render threads
|
||||
Process.setThreadPriority(app.pid, -10);
|
||||
if (app.renderThreadTid != 0) {
|
||||
Process.setThreadPriority(app.renderThreadTid, -10);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (oldSchedGroup == ProcessList.SCHED_GROUP_TOP_APP &&
|
||||
@@ -20312,6 +20322,12 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
Process.SCHED_OTHER, 0);
|
||||
Process.setThreadPriority(app.renderThreadTid, -4);
|
||||
}
|
||||
} else {
|
||||
// Reset priority for top app UI and render threads
|
||||
Process.setThreadPriority(app.pid, 0);
|
||||
if (app.renderThreadTid != 0) {
|
||||
Process.setThreadPriority(app.renderThreadTid, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user