Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8ee2116 authored by Tim Murray's avatar Tim Murray Committed by android-build-merger
Browse files

Increase UI and RenderThread priority when not using FIFO.

am: a636b0b4

Change-Id: I3d586b9aa8ca8b3d989c8d4d5d95ccba916ea068
parents 8679f95a a636b0b4
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -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");
                        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) {
@@ -20299,6 +20303,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 &&
@@ -20317,6 +20327,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) {