Loading services/core/java/com/android/server/am/OomAdjuster.java +6 −17 Original line number Diff line number Diff line Loading @@ -2782,29 +2782,18 @@ public class OomAdjuster { void setAttachingSchedGroupLSP(ProcessRecord app) { int initialSchedGroup = ProcessList.SCHED_GROUP_DEFAULT; final ProcessStateRecord state = app.mState; // If the process has been marked as foreground via Zygote.START_FLAG_USE_TOP_APP_PRIORITY, // then verify that the top priority is actually is applied. // If the process has been marked as foreground, it is starting as the top app (with // Zygote#START_AS_TOP_APP_ARG), so boost the thread priority of its default UI thread. if (state.hasForegroundActivities()) { String fallbackReason = null; try { // The priority must be the same as how does {@link #applyOomAdjLSP} set for // {@link ProcessList.SCHED_GROUP_TOP_APP}. We don't check render thread because it // is not ready when attaching. if (Process.getProcessGroup(app.getPid()) == THREAD_GROUP_TOP_APP) { app.getWindowProcessController().onTopProcChanged(); setThreadPriority(app.getPid(), THREAD_PRIORITY_TOP_APP_BOOST); } else { fallbackReason = "not expected top priority"; } } catch (Exception e) { fallbackReason = e.toString(); } if (fallbackReason == null) { initialSchedGroup = ProcessList.SCHED_GROUP_TOP_APP; } else { // The real scheduling group will depend on if there is any component of the process // did something during attaching. Slog.w(TAG, "Fallback pre-set sched group to default: " + fallbackReason); } catch (Exception e) { Slog.w(TAG, "Failed to pre-set top priority to " + app + " " + e); } } Loading Loading
services/core/java/com/android/server/am/OomAdjuster.java +6 −17 Original line number Diff line number Diff line Loading @@ -2782,29 +2782,18 @@ public class OomAdjuster { void setAttachingSchedGroupLSP(ProcessRecord app) { int initialSchedGroup = ProcessList.SCHED_GROUP_DEFAULT; final ProcessStateRecord state = app.mState; // If the process has been marked as foreground via Zygote.START_FLAG_USE_TOP_APP_PRIORITY, // then verify that the top priority is actually is applied. // If the process has been marked as foreground, it is starting as the top app (with // Zygote#START_AS_TOP_APP_ARG), so boost the thread priority of its default UI thread. if (state.hasForegroundActivities()) { String fallbackReason = null; try { // The priority must be the same as how does {@link #applyOomAdjLSP} set for // {@link ProcessList.SCHED_GROUP_TOP_APP}. We don't check render thread because it // is not ready when attaching. if (Process.getProcessGroup(app.getPid()) == THREAD_GROUP_TOP_APP) { app.getWindowProcessController().onTopProcChanged(); setThreadPriority(app.getPid(), THREAD_PRIORITY_TOP_APP_BOOST); } else { fallbackReason = "not expected top priority"; } } catch (Exception e) { fallbackReason = e.toString(); } if (fallbackReason == null) { initialSchedGroup = ProcessList.SCHED_GROUP_TOP_APP; } else { // The real scheduling group will depend on if there is any component of the process // did something during attaching. Slog.w(TAG, "Fallback pre-set sched group to default: " + fallbackReason); } catch (Exception e) { Slog.w(TAG, "Failed to pre-set top priority to " + app + " " + e); } } Loading