Merge "Remove getProcessGroup usage in OomAdjuster"
This commit is contained in:
@@ -2872,29 +2872,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) {
|
||||
app.getWindowProcessController().onTopProcChanged();
|
||||
setThreadPriority(app.getPid(), THREAD_PRIORITY_TOP_APP_BOOST);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user