Loading services/core/java/com/android/server/am/OomAdjuster.java +126 −164 Original line number Diff line number Diff line Loading @@ -953,43 +953,7 @@ public abstract class OomAdjuster { final int numLru = lruList.size(); int nextVisibleAppAdj = VISIBLE_APP_ADJ; int nextPreviousAppAdj = PREVIOUS_APP_ADJ; if (mConstants.USE_TIERED_CACHED_ADJ) { final long now = mInjector.getUptimeMillis(); int uiTargetAdj = 10; // mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE is 10 by default, but is configurable. final int uiTierMaxAdj = 10 + mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; for (int i = numLru - 1; i >= 0; i--) { ProcessRecord app = lruList.get(i); final ProcessRecordInternal state = app; final int curAdj = state.getCurAdj(); if (VISIBLE_APP_ADJ <= curAdj && curAdj <= VISIBLE_APP_MAX_ADJ) { state.setCurAdj(nextVisibleAppAdj); nextVisibleAppAdj = Math.min(nextVisibleAppAdj + 1, VISIBLE_APP_MAX_ADJ); } else if (PREVIOUS_APP_ADJ <= curAdj && curAdj <= PREVIOUS_APP_MAX_ADJ) { state.setCurAdj(nextPreviousAppAdj); nextPreviousAppAdj = Math.min(nextPreviousAppAdj + 1, PREVIOUS_APP_MAX_ADJ); } else if (!app.isKilledByAm() && app.isProcessRunning() && (curAdj >= UNKNOWN_ADJ || (state.getHasShownUi() && curAdj >= CACHED_APP_MIN_ADJ))) { final ProcessServiceRecord psr = app.mServices; int targetAdj = CACHED_APP_MIN_ADJ; if (state.getHasShownUi() && uiTargetAdj < uiTierMaxAdj) { // The most recent UI-showing apps get [910, 910 + ui tier size). targetAdj += uiTargetAdj++; } else if ((state.getSetAdj() >= CACHED_APP_MIN_ADJ) && (state.getLastStateTime() + mConstants.TIERED_CACHED_ADJ_DECAY_TIME) < now) { // Older cached apps get 940 + ui tier size (950 by default). targetAdj += 40 + mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; } else { // Newer cached apps get 910 + ui tier size (920 by default). targetAdj += 10 + mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; } state.setCurRawAdj(targetAdj); state.setCurAdj(applyBindAboveClientToAdj(psr.isHasAboveClient(), targetAdj)); } } } else { // First update the OOM adjustment for each of the // application processes based on their current state. int curCachedAdj = CACHED_APP_MIN_ADJ; Loading Loading @@ -1029,7 +993,6 @@ public abstract class OomAdjuster { int lastCachedGroupImportance = 0; int lastCachedGroupUid = 0; for (int i = numLru - 1; i >= 0; i--) { ProcessRecord app = lruList.get(i); final ProcessRecordInternal state = app; Loading Loading @@ -1129,7 +1092,6 @@ public abstract class OomAdjuster { } } } } private long mNextNoKillDebugMessageTime; private double mLastFreeSwapPercent = 1.00; Loading services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java +21 −54 Original line number Diff line number Diff line Loading @@ -198,7 +198,6 @@ public class MockingOomAdjusterTests { private static int sFirstCachedAdj = ProcessList.CACHED_APP_MIN_ADJ + ProcessList.CACHED_APP_IMPORTANCE_LEVELS; private static int sFirstUiCachedAdj = ProcessList.CACHED_APP_MIN_ADJ + 10; private Context mContext; private ProcessStateController mProcessStateController; Loading @@ -212,9 +211,6 @@ public class MockingOomAdjusterTests { private HandlerThread mActivityStateHandlerThread; private Handler mActivityStateHandler; private int mUiTierSize; private int mFirstNonUiCachedAdj; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); Loading Loading @@ -316,9 +312,6 @@ public class MockingOomAdjusterTests { mService.mActivityTaskManager.initialize(null, null, mProcessStateController, mActivityStateHandlerThread.getLooper()); mService.mAtmInternal = spy(mService.mActivityTaskManager.getAtmInternal()); mUiTierSize = mService.mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; mFirstNonUiCachedAdj = sFirstUiCachedAdj + mUiTierSize; } @SuppressWarnings("GuardedBy") Loading Loading @@ -653,8 +646,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1273,8 +1265,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertEquals(expectedAdj, app.getSetAdj()); assertThatProcess(app).notHasImplicitCpuTimeCapability(); // Follow up should not have been called again. Loading Loading @@ -1423,8 +1414,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : CACHED_APP_MIN_ADJ; int expectedAdj = CACHED_APP_MIN_ADJ; assertProcStates(app, PROCESS_STATE_LAST_ACTIVITY, expectedAdj, SCHED_GROUP_BACKGROUND, "previous-expired"); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1504,16 +1494,10 @@ public class MockingOomAdjusterTests { for (int i = 0; i < numberOfApps - 1; i++) { final int mruIndex = numberOfApps - i - 1; int expectedAdj; if (mService.mConstants.USE_TIERED_CACHED_ADJ) { expectedAdj = (i < numberOfApps - mUiTierSize) ? mFirstNonUiCachedAdj : sFirstUiCachedAdj + mruIndex; } else { expectedAdj = CACHED_APP_MIN_ADJ + (mruIndex * 2 * CACHED_APP_IMPORTANCE_LEVELS); int expectedAdj = CACHED_APP_MIN_ADJ + (mruIndex * 2 * CACHED_APP_IMPORTANCE_LEVELS); if (expectedAdj > CACHED_APP_MAX_ADJ) { expectedAdj = CACHED_APP_MAX_ADJ; } } assertProcStates(apps[i], PROCESS_STATE_LAST_ACTIVITY, expectedAdj, SCHED_GROUP_BACKGROUND, "service"); assertThatProcess(apps[i]).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1597,8 +1581,7 @@ public class MockingOomAdjusterTests { } else { updateOomAdj(app); } final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1711,8 +1694,7 @@ public class MockingOomAdjusterTests { updateOomAdj(client, app); setTopProcess(null); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_SERVICE, expectedAdj, SCHED_GROUP_BACKGROUND); // This WPRIO service oom score is in the FREEZER_CUTOFF_ADJ range, but the client is not // frozen, so neither should the service. Loading Loading @@ -1767,8 +1749,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); } Loading Loading @@ -2232,8 +2213,7 @@ public class MockingOomAdjusterTests { bindProvider(app, cpr); updateOomAdj(app); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); } Loading @@ -2251,8 +2231,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app, client); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); } Loading Loading @@ -2396,8 +2375,7 @@ public class MockingOomAdjusterTests { setProcessesToLru(client, app); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-empty"); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -3602,8 +3580,6 @@ public class MockingOomAdjusterTests { final int userOwner = 0; final int userOther = 1; // cachedAdj1 and cachedAdj2 will be read if USE_TIERED_CACHED_ADJ is disabled. Otherwise, // sFirstUiCachedAdj and mFirstNonUiCachedAdj are used instead. final int cachedAdj1 = CACHED_APP_MIN_ADJ + CACHED_APP_IMPORTANCE_LEVELS; final int cachedAdj2 = cachedAdj1 + CACHED_APP_IMPORTANCE_LEVELS * 2; doReturn(userOwner).when(mService.mUserController).getCurrentUserId(); Loading Loading @@ -3647,12 +3623,10 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(); assertProcStates(app, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : cachedAdj1, assertProcStates(app, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-ui-services", true); assertThatProcess(app).notHasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj2, assertProcStates(app2, PROCESS_STATE_SERVICE, cachedAdj2, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app2).notHasImplicitCpuTimeCapability(); Loading @@ -3673,8 +3647,7 @@ public class MockingOomAdjusterTests { now - mService.mConstants.MAX_SERVICE_INACTIVITY - 1); updateOomAdj(); assertProcStates(app, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading @@ -3697,8 +3670,7 @@ public class MockingOomAdjusterTests { assertProcStates(app, PROCESS_STATE_SERVICE, SERVICE_ADJ, SCHED_GROUP_BACKGROUND, "started-services", false); assertThatProcess(app).hasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app2, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app2).notHasImplicitCpuTimeCapability(); Loading @@ -3713,8 +3685,7 @@ public class MockingOomAdjusterTests { assertProcStates(app, PROCESS_STATE_SERVICE, SERVICE_ADJ, SCHED_GROUP_BACKGROUND, "started-services", false); assertThatProcess(app).hasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app2, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app2).notHasImplicitCpuTimeCapability(); Loading @@ -3722,8 +3693,7 @@ public class MockingOomAdjusterTests { mService.mOomAdjuster.handleUserSwitchedLocked(); updateOomAdj(); assertProcStates(app, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app).notHasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, SERVICE_ADJ, SCHED_GROUP_BACKGROUND, Loading Loading @@ -4061,8 +4031,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_SERVICE, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-started-services"); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -4210,8 +4179,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app1, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-empty"); assertThatProcess(app1).notHasImplicitCpuTimeCapability(); Loading Loading @@ -4278,8 +4246,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app, client); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_HOME, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-bound-ui-services"); // CPU_TIME is not granted to the client and so cannot be propagated to the service. Loading Loading
services/core/java/com/android/server/am/OomAdjuster.java +126 −164 Original line number Diff line number Diff line Loading @@ -953,43 +953,7 @@ public abstract class OomAdjuster { final int numLru = lruList.size(); int nextVisibleAppAdj = VISIBLE_APP_ADJ; int nextPreviousAppAdj = PREVIOUS_APP_ADJ; if (mConstants.USE_TIERED_CACHED_ADJ) { final long now = mInjector.getUptimeMillis(); int uiTargetAdj = 10; // mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE is 10 by default, but is configurable. final int uiTierMaxAdj = 10 + mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; for (int i = numLru - 1; i >= 0; i--) { ProcessRecord app = lruList.get(i); final ProcessRecordInternal state = app; final int curAdj = state.getCurAdj(); if (VISIBLE_APP_ADJ <= curAdj && curAdj <= VISIBLE_APP_MAX_ADJ) { state.setCurAdj(nextVisibleAppAdj); nextVisibleAppAdj = Math.min(nextVisibleAppAdj + 1, VISIBLE_APP_MAX_ADJ); } else if (PREVIOUS_APP_ADJ <= curAdj && curAdj <= PREVIOUS_APP_MAX_ADJ) { state.setCurAdj(nextPreviousAppAdj); nextPreviousAppAdj = Math.min(nextPreviousAppAdj + 1, PREVIOUS_APP_MAX_ADJ); } else if (!app.isKilledByAm() && app.isProcessRunning() && (curAdj >= UNKNOWN_ADJ || (state.getHasShownUi() && curAdj >= CACHED_APP_MIN_ADJ))) { final ProcessServiceRecord psr = app.mServices; int targetAdj = CACHED_APP_MIN_ADJ; if (state.getHasShownUi() && uiTargetAdj < uiTierMaxAdj) { // The most recent UI-showing apps get [910, 910 + ui tier size). targetAdj += uiTargetAdj++; } else if ((state.getSetAdj() >= CACHED_APP_MIN_ADJ) && (state.getLastStateTime() + mConstants.TIERED_CACHED_ADJ_DECAY_TIME) < now) { // Older cached apps get 940 + ui tier size (950 by default). targetAdj += 40 + mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; } else { // Newer cached apps get 910 + ui tier size (920 by default). targetAdj += 10 + mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; } state.setCurRawAdj(targetAdj); state.setCurAdj(applyBindAboveClientToAdj(psr.isHasAboveClient(), targetAdj)); } } } else { // First update the OOM adjustment for each of the // application processes based on their current state. int curCachedAdj = CACHED_APP_MIN_ADJ; Loading Loading @@ -1029,7 +993,6 @@ public abstract class OomAdjuster { int lastCachedGroupImportance = 0; int lastCachedGroupUid = 0; for (int i = numLru - 1; i >= 0; i--) { ProcessRecord app = lruList.get(i); final ProcessRecordInternal state = app; Loading Loading @@ -1129,7 +1092,6 @@ public abstract class OomAdjuster { } } } } private long mNextNoKillDebugMessageTime; private double mLastFreeSwapPercent = 1.00; Loading
services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java +21 −54 Original line number Diff line number Diff line Loading @@ -198,7 +198,6 @@ public class MockingOomAdjusterTests { private static int sFirstCachedAdj = ProcessList.CACHED_APP_MIN_ADJ + ProcessList.CACHED_APP_IMPORTANCE_LEVELS; private static int sFirstUiCachedAdj = ProcessList.CACHED_APP_MIN_ADJ + 10; private Context mContext; private ProcessStateController mProcessStateController; Loading @@ -212,9 +211,6 @@ public class MockingOomAdjusterTests { private HandlerThread mActivityStateHandlerThread; private Handler mActivityStateHandler; private int mUiTierSize; private int mFirstNonUiCachedAdj; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); Loading Loading @@ -316,9 +312,6 @@ public class MockingOomAdjusterTests { mService.mActivityTaskManager.initialize(null, null, mProcessStateController, mActivityStateHandlerThread.getLooper()); mService.mAtmInternal = spy(mService.mActivityTaskManager.getAtmInternal()); mUiTierSize = mService.mConstants.TIERED_CACHED_ADJ_UI_TIER_SIZE; mFirstNonUiCachedAdj = sFirstUiCachedAdj + mUiTierSize; } @SuppressWarnings("GuardedBy") Loading Loading @@ -653,8 +646,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1273,8 +1265,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertEquals(expectedAdj, app.getSetAdj()); assertThatProcess(app).notHasImplicitCpuTimeCapability(); // Follow up should not have been called again. Loading Loading @@ -1423,8 +1414,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : CACHED_APP_MIN_ADJ; int expectedAdj = CACHED_APP_MIN_ADJ; assertProcStates(app, PROCESS_STATE_LAST_ACTIVITY, expectedAdj, SCHED_GROUP_BACKGROUND, "previous-expired"); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1504,16 +1494,10 @@ public class MockingOomAdjusterTests { for (int i = 0; i < numberOfApps - 1; i++) { final int mruIndex = numberOfApps - i - 1; int expectedAdj; if (mService.mConstants.USE_TIERED_CACHED_ADJ) { expectedAdj = (i < numberOfApps - mUiTierSize) ? mFirstNonUiCachedAdj : sFirstUiCachedAdj + mruIndex; } else { expectedAdj = CACHED_APP_MIN_ADJ + (mruIndex * 2 * CACHED_APP_IMPORTANCE_LEVELS); int expectedAdj = CACHED_APP_MIN_ADJ + (mruIndex * 2 * CACHED_APP_IMPORTANCE_LEVELS); if (expectedAdj > CACHED_APP_MAX_ADJ) { expectedAdj = CACHED_APP_MAX_ADJ; } } assertProcStates(apps[i], PROCESS_STATE_LAST_ACTIVITY, expectedAdj, SCHED_GROUP_BACKGROUND, "service"); assertThatProcess(apps[i]).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1597,8 +1581,7 @@ public class MockingOomAdjusterTests { } else { updateOomAdj(app); } final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -1711,8 +1694,7 @@ public class MockingOomAdjusterTests { updateOomAdj(client, app); setTopProcess(null); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_SERVICE, expectedAdj, SCHED_GROUP_BACKGROUND); // This WPRIO service oom score is in the FREEZER_CUTOFF_ADJ range, but the client is not // frozen, so neither should the service. Loading Loading @@ -1767,8 +1749,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); } Loading Loading @@ -2232,8 +2213,7 @@ public class MockingOomAdjusterTests { bindProvider(app, cpr); updateOomAdj(app); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); } Loading @@ -2251,8 +2231,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app, client); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND); assertThatProcess(app).notHasImplicitCpuTimeCapability(); } Loading Loading @@ -2396,8 +2375,7 @@ public class MockingOomAdjusterTests { setProcessesToLru(client, app); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-empty"); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -3602,8 +3580,6 @@ public class MockingOomAdjusterTests { final int userOwner = 0; final int userOther = 1; // cachedAdj1 and cachedAdj2 will be read if USE_TIERED_CACHED_ADJ is disabled. Otherwise, // sFirstUiCachedAdj and mFirstNonUiCachedAdj are used instead. final int cachedAdj1 = CACHED_APP_MIN_ADJ + CACHED_APP_IMPORTANCE_LEVELS; final int cachedAdj2 = cachedAdj1 + CACHED_APP_IMPORTANCE_LEVELS * 2; doReturn(userOwner).when(mService.mUserController).getCurrentUserId(); Loading Loading @@ -3647,12 +3623,10 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(); assertProcStates(app, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : cachedAdj1, assertProcStates(app, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-ui-services", true); assertThatProcess(app).notHasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj2, assertProcStates(app2, PROCESS_STATE_SERVICE, cachedAdj2, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app2).notHasImplicitCpuTimeCapability(); Loading @@ -3673,8 +3647,7 @@ public class MockingOomAdjusterTests { now - mService.mConstants.MAX_SERVICE_INACTIVITY - 1); updateOomAdj(); assertProcStates(app, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading @@ -3697,8 +3670,7 @@ public class MockingOomAdjusterTests { assertProcStates(app, PROCESS_STATE_SERVICE, SERVICE_ADJ, SCHED_GROUP_BACKGROUND, "started-services", false); assertThatProcess(app).hasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app2, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app2).notHasImplicitCpuTimeCapability(); Loading @@ -3713,8 +3685,7 @@ public class MockingOomAdjusterTests { assertProcStates(app, PROCESS_STATE_SERVICE, SERVICE_ADJ, SCHED_GROUP_BACKGROUND, "started-services", false); assertThatProcess(app).hasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app2, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app2).notHasImplicitCpuTimeCapability(); Loading @@ -3722,8 +3693,7 @@ public class MockingOomAdjusterTests { mService.mOomAdjuster.handleUserSwitchedLocked(); updateOomAdj(); assertProcStates(app, PROCESS_STATE_SERVICE, mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : cachedAdj1, assertProcStates(app, PROCESS_STATE_SERVICE, cachedAdj1, SCHED_GROUP_BACKGROUND, "cch-started-services", true); assertThatProcess(app).notHasImplicitCpuTimeCapability(); assertProcStates(app2, PROCESS_STATE_SERVICE, SERVICE_ADJ, SCHED_GROUP_BACKGROUND, Loading Loading @@ -4061,8 +4031,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_SERVICE, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-started-services"); assertThatProcess(app).notHasImplicitCpuTimeCapability(); Loading Loading @@ -4210,8 +4179,7 @@ public class MockingOomAdjusterTests { mInjector.jumpUptimeAheadTo(followUpTimeCaptor.getValue()); mProcessStateController.runFollowUpUpdate(); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? mFirstNonUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app1, PROCESS_STATE_CACHED_EMPTY, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-empty"); assertThatProcess(app1).notHasImplicitCpuTimeCapability(); Loading Loading @@ -4278,8 +4246,7 @@ public class MockingOomAdjusterTests { setWakefulness(PowerManagerInternal.WAKEFULNESS_AWAKE); updateOomAdj(app, client); final int expectedAdj = mService.mConstants.USE_TIERED_CACHED_ADJ ? sFirstUiCachedAdj : sFirstCachedAdj; final int expectedAdj = sFirstCachedAdj; assertProcStates(app, PROCESS_STATE_HOME, expectedAdj, SCHED_GROUP_BACKGROUND, "cch-bound-ui-services"); // CPU_TIME is not granted to the client and so cannot be propagated to the service. Loading