summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Edgar Arriaga GarcĂ­a <edgararriaga@google.com> 2023-04-03 19:07:36 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-03 19:07:36 +0000
commit65a646ae64bcf124a586feae16822cedf738c4fa (patch)
treead44d0825752d0af2668f430ba9297b1ae2df510
parent2e03f9f59ae566a9aafeeb4b1036fbc1cee395de (diff)
parent0bf0398e4683155c7ca8b885d2567524ad77ad84 (diff)
Merge changes If2614951,I677af7bf into udc-dev
* changes: Remove wasteful bfgs and services compaction flows Make compaction happen after freezing
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerShellCommand.java4
-rw-r--r--services/core/java/com/android/server/am/CachedAppOptimizer.java116
-rw-r--r--services/core/java/com/android/server/am/OomAdjuster.java26
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java50
4 files changed, 34 insertions, 162 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 6c6ac1eb3030..350ac3bd4360 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -1095,7 +1095,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
synchronized (mInternal.mProcLock) {
mInternal.mOomAdjuster.mCachedAppOptimizer.compactApp(app,
CachedAppOptimizer.CompactProfile.FULL,
- CachedAppOptimizer.CompactSource.APP, true);
+ CachedAppOptimizer.CompactSource.SHELL, true);
}
pw.println("Finished full compaction for " + app.mPid);
} else if (isSomeCompact) {
@@ -1103,7 +1103,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
synchronized (mInternal.mProcLock) {
mInternal.mOomAdjuster.mCachedAppOptimizer.compactApp(app,
CachedAppOptimizer.CompactProfile.SOME,
- CachedAppOptimizer.CompactSource.APP, true);
+ CachedAppOptimizer.CompactSource.SHELL, true);
}
pw.println("Finished some compaction for " + app.mPid);
}
diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java
index 192a2ba1df2a..9c1546324e4b 100644
--- a/services/core/java/com/android/server/am/CachedAppOptimizer.java
+++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java
@@ -226,8 +226,8 @@ public final class CachedAppOptimizer {
FULL // File+anon compaction
}
- // This indicates the process OOM memory state that initiated the compaction request
- public enum CompactSource { APP, PERSISTENT, BFGS }
+ // This indicates who initiated the compaction request
+ public enum CompactSource { APP, SHELL }
public enum CancelCompactReason {
SCREEN_ON, // screen was turned on which cancels all compactions.
@@ -373,10 +373,6 @@ public final class CachedAppOptimizer {
@GuardedBy("mPhenotypeFlagLock")
@VisibleForTesting volatile long mCompactThrottleFullFull = DEFAULT_COMPACT_THROTTLE_4;
@GuardedBy("mPhenotypeFlagLock")
- @VisibleForTesting volatile long mCompactThrottleBFGS = DEFAULT_COMPACT_THROTTLE_5;
- @GuardedBy("mPhenotypeFlagLock")
- @VisibleForTesting volatile long mCompactThrottlePersistent = DEFAULT_COMPACT_THROTTLE_6;
- @GuardedBy("mPhenotypeFlagLock")
@VisibleForTesting volatile long mCompactThrottleMinOomAdj =
DEFAULT_COMPACT_THROTTLE_MIN_OOM_ADJ;
@GuardedBy("mPhenotypeFlagLock")
@@ -635,8 +631,6 @@ public final class CachedAppOptimizer {
pw.println(" " + KEY_COMPACT_THROTTLE_2 + "=" + mCompactThrottleSomeFull);
pw.println(" " + KEY_COMPACT_THROTTLE_3 + "=" + mCompactThrottleFullSome);
pw.println(" " + KEY_COMPACT_THROTTLE_4 + "=" + mCompactThrottleFullFull);
- pw.println(" " + KEY_COMPACT_THROTTLE_5 + "=" + mCompactThrottleBFGS);
- pw.println(" " + KEY_COMPACT_THROTTLE_6 + "=" + mCompactThrottlePersistent);
pw.println(" " + KEY_COMPACT_THROTTLE_MIN_OOM_ADJ + "=" + mCompactThrottleMinOomAdj);
pw.println(" " + KEY_COMPACT_THROTTLE_MAX_OOM_ADJ + "=" + mCompactThrottleMaxOomAdj);
pw.println(" " + KEY_COMPACT_STATSD_SAMPLE_RATE + "=" + mCompactStatsdSampleRate);
@@ -728,32 +722,6 @@ public final class CachedAppOptimizer {
}
}
- // This method returns true only if requirements are met. Note, that requirements are different
- // from throttles applied at the time a compaction is trying to be executed in the sense that
- // these are not subject to change dependent on time or memory as throttles usually do.
- @GuardedBy("mProcLock")
- boolean meetsCompactionRequirements(ProcessRecord proc) {
- if (mAm.mInternal.isPendingTopUid(proc.uid)) {
- // In case the OOM Adjust has not yet been propagated we see if this is
- // pending on becoming top app in which case we should not compact.
- if (DEBUG_COMPACTION) {
- Slog.d(TAG_AM, "Skip compaction since UID is active for " + proc.processName);
- }
- return false;
- }
-
- if (proc.mState.hasForegroundActivities()) {
- if (DEBUG_COMPACTION) {
- Slog.e(TAG_AM,
- "Skip compaction as process " + proc.processName
- + " has foreground activities");
- }
- return false;
- }
-
- return true;
- }
-
@GuardedBy("mProcLock")
boolean compactApp(
ProcessRecord app, CompactProfile compactProfile, CompactSource source, boolean force) {
@@ -777,7 +745,7 @@ public final class CachedAppOptimizer {
return false;
}
- if (!app.mOptRecord.hasPendingCompact() && (meetsCompactionRequirements(app) || force)) {
+ if (!app.mOptRecord.hasPendingCompact()) {
final String processName = (app.processName != null ? app.processName : "");
if (DEBUG_COMPACTION) {
Slog.d(TAG_AM,
@@ -795,8 +763,7 @@ public final class CachedAppOptimizer {
if (DEBUG_COMPACTION) {
Slog.d(TAG_AM,
" compactApp Skipped for " + app.processName + " pendingCompact= "
- + app.mOptRecord.hasPendingCompact() + " meetsCompactionRequirements="
- + meetsCompactionRequirements(app) + ". Requested compact profile: "
+ + app.mOptRecord.hasPendingCompact() + ". Requested compact profile: "
+ app.mOptRecord.getReqCompactProfile().name() + ". Compact source "
+ app.mOptRecord.getReqCompactSource().name());
}
@@ -831,18 +798,6 @@ public final class CachedAppOptimizer {
return stats;
}
- @GuardedBy("mProcLock")
- boolean shouldCompactPersistent(ProcessRecord app, long now) {
- return (app.mOptRecord.getLastCompactTime() == 0
- || (now - app.mOptRecord.getLastCompactTime()) > mCompactThrottlePersistent);
- }
-
- @GuardedBy("mProcLock")
- boolean shouldCompactBFGS(ProcessRecord app, long now) {
- return (app.mOptRecord.getLastCompactTime() == 0
- || (now - app.mOptRecord.getLastCompactTime()) > mCompactThrottleBFGS);
- }
-
void compactAllSystem() {
if (useCompaction()) {
if (DEBUG_COMPACTION) {
@@ -1130,8 +1085,6 @@ public final class CachedAppOptimizer {
mCompactThrottleSomeFull = Integer.parseInt(throttleSomeFullFlag);
mCompactThrottleFullSome = Integer.parseInt(throttleFullSomeFlag);
mCompactThrottleFullFull = Integer.parseInt(throttleFullFullFlag);
- mCompactThrottleBFGS = Integer.parseInt(throttleBFGSFlag);
- mCompactThrottlePersistent = Integer.parseInt(throttlePersistentFlag);
mCompactThrottleMinOomAdj = Long.parseLong(throttleMinOomAdjFlag);
mCompactThrottleMaxOomAdj = Long.parseLong(throttleMaxOomAdjFlag);
} catch (NumberFormatException e) {
@@ -1144,8 +1097,6 @@ public final class CachedAppOptimizer {
mCompactThrottleSomeFull = DEFAULT_COMPACT_THROTTLE_2;
mCompactThrottleFullSome = DEFAULT_COMPACT_THROTTLE_3;
mCompactThrottleFullFull = DEFAULT_COMPACT_THROTTLE_4;
- mCompactThrottleBFGS = DEFAULT_COMPACT_THROTTLE_5;
- mCompactThrottlePersistent = DEFAULT_COMPACT_THROTTLE_6;
mCompactThrottleMinOomAdj = DEFAULT_COMPACT_THROTTLE_MIN_OOM_ADJ;
mCompactThrottleMaxOomAdj = DEFAULT_COMPACT_THROTTLE_MAX_OOM_ADJ;
}
@@ -1497,23 +1448,23 @@ public final class CachedAppOptimizer {
@GuardedBy({"mService", "mProcLock"})
void onOomAdjustChanged(int oldAdj, int newAdj, ProcessRecord app) {
- // Cancel any currently executing compactions
- // if the process moved out of cached state
- if (newAdj < oldAdj && newAdj < ProcessList.CACHED_APP_MIN_ADJ) {
- cancelCompactionForProcess(app, CancelCompactReason.OOM_IMPROVEMENT);
+ if (useCompaction()) {
+ // Cancel any currently executing compactions
+ // if the process moved out of cached state
+ if (newAdj < oldAdj && newAdj < ProcessList.CACHED_APP_MIN_ADJ) {
+ cancelCompactionForProcess(app, CancelCompactReason.OOM_IMPROVEMENT);
+ }
}
+ }
- if (oldAdj <= ProcessList.PERCEPTIBLE_APP_ADJ
- && (newAdj == ProcessList.PREVIOUS_APP_ADJ || newAdj == ProcessList.HOME_APP_ADJ)) {
- if (ENABLE_FILE_COMPACT) {
- // Perform a minor compaction when a perceptible app becomes the prev/home app
- compactApp(app, CompactProfile.SOME, CompactSource.APP, false);
+ /**
+ * Callback received after a process has been frozen.
+ */
+ void onProcessFrozen(ProcessRecord frozenProc) {
+ if (useCompaction()) {
+ synchronized (mProcLock) {
+ compactApp(frozenProc, CompactProfile.FULL, CompactSource.APP, false);
}
- } else if (oldAdj < ProcessList.CACHED_APP_MIN_ADJ
- && newAdj >= ProcessList.CACHED_APP_MIN_ADJ
- && newAdj <= ProcessList.CACHED_APP_MAX_ADJ) {
- // Perform a major compaction when any app enters cached
- compactApp(app, CompactProfile.FULL, CompactSource.APP, false);
}
}
@@ -1687,26 +1638,6 @@ public final class CachedAppOptimizer {
return true;
}
}
- } else if (source == CompactSource.PERSISTENT) {
- if (start - lastCompactTime < mCompactThrottlePersistent) {
- if (DEBUG_COMPACTION) {
- Slog.d(TAG_AM,
- "Skipping persistent compaction for " + name
- + ": too soon. throttle=" + mCompactThrottlePersistent
- + " last=" + (start - lastCompactTime) + "ms ago");
- }
- return true;
- }
- } else if (source == CompactSource.BFGS) {
- if (start - lastCompactTime < mCompactThrottleBFGS) {
- if (DEBUG_COMPACTION) {
- Slog.d(TAG_AM,
- "Skipping bfgs compaction for " + name
- + ": too soon. throttle=" + mCompactThrottleBFGS
- + " last=" + (start - lastCompactTime) + "ms ago");
- }
- return true;
- }
}
}
@@ -2021,6 +1952,9 @@ public final class CachedAppOptimizer {
}
}
}
+ if (proc.mOptRecord.isFrozen()) {
+ onProcessFrozen(proc);
+ }
}
break;
case REPORT_UNFREEZE_MSG:
@@ -2050,6 +1984,10 @@ public final class CachedAppOptimizer {
freezeAppAsyncLSP(proc);
}
+ /**
+ * Freeze a process.
+ * @param proc process to be frozen
+ */
@GuardedBy({"mAm"})
private void freezeProcess(final ProcessRecord proc) {
int pid = proc.getPid(); // Unlocked intentionally
@@ -2083,6 +2021,10 @@ public final class CachedAppOptimizer {
if (pid == 0 || opt.isFrozen()) {
// Already frozen or not a real process, either one being
// launched or one being killed
+ if (DEBUG_FREEZER) {
+ Slog.d(TAG_AM, "Skipping freeze for process " + pid
+ + " " + name + ". Already frozen or not a real process");
+ }
return;
}
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index a86c02d4b826..a98571b68067 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -2937,30 +2937,8 @@ public class OomAdjuster {
int changes = 0;
- // don't compact during bootup
- if (mCachedAppOptimizer.useCompaction() && mService.mBooted) {
- // Cached and prev/home compaction
- // reminder: here, setAdj is previous state, curAdj is upcoming state
- if (state.getCurAdj() != state.getSetAdj()) {
- mCachedAppOptimizer.onOomAdjustChanged(state.getSetAdj(), state.getCurAdj(), app);
- } else if (mService.mWakefulness.get() != PowerManagerInternal.WAKEFULNESS_AWAKE) {
- // See if we can compact persistent and bfgs services now that screen is off
- if (state.getSetAdj() < FOREGROUND_APP_ADJ
- && !state.isRunningRemoteAnimation()
- // Because these can fire independent of oom_adj/procstate changes, we need
- // to throttle the actual dispatch of these requests in addition to the
- // processing of the requests. As a result, there is throttling both here
- // and in CachedAppOptimizer.
- && mCachedAppOptimizer.shouldCompactPersistent(app, now)) {
- mCachedAppOptimizer.compactApp(app, CachedAppOptimizer.CompactProfile.FULL,
- CachedAppOptimizer.CompactSource.PERSISTENT, false);
- } else if (state.getCurProcState()
- == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE
- && mCachedAppOptimizer.shouldCompactBFGS(app, now)) {
- mCachedAppOptimizer.compactApp(app, CachedAppOptimizer.CompactProfile.FULL,
- CachedAppOptimizer.CompactSource.BFGS, false);
- }
- }
+ if (state.getCurAdj() != state.getSetAdj()) {
+ mCachedAppOptimizer.onOomAdjustChanged(state.getSetAdj(), state.getCurAdj(), app);
}
if (state.getCurAdj() != state.getSetAdj()) {
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
index 1fbb8dd5ac9d..eb6efd2e859f 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
@@ -166,10 +166,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE);
assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
assertThat(mCachedAppOptimizerUnderTest.mFullAnonRssThrottleKb).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_FULL_RSS_THROTTLE_KB);
assertThat(mCachedAppOptimizerUnderTest.mFullDeltaRssThrottleKb).isEqualTo(
@@ -261,10 +257,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3 + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4 + 1);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5 + 1);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6 + 1);
assertThat(mCachedAppOptimizerUnderTest.mFullDeltaRssThrottleKb).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_FULL_DELTA_RSS_THROTTLE_KB + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleMinOomAdj).isEqualTo(
@@ -275,10 +267,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f);
assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5 + 1);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6 + 1);
assertThat(mCachedAppOptimizerUnderTest.mFullAnonRssThrottleKb).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_FULL_RSS_THROTTLE_KB + 1);
assertThat(mCachedAppOptimizerUnderTest.mProcStateThrottle).containsExactly(1, 2, 3);
@@ -425,10 +413,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3 + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4 + 1);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5 + 1);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6 + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleMinOomAdj).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_MIN_OOM_ADJ + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleMaxOomAdj).isEqualTo(
@@ -454,10 +438,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
// Repeat for each of the throttle keys.
mCountDown = new CountDownLatch(1);
@@ -472,10 +452,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
mCountDown = new CountDownLatch(1);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -489,10 +465,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
mCountDown = new CountDownLatch(1);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -506,10 +478,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
mCountDown = new CountDownLatch(1);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -523,10 +491,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
mCountDown = new CountDownLatch(1);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -540,10 +504,6 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_3);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleFullFull).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5);
- assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
- CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6);
}
@Test
@@ -953,15 +913,7 @@ public final class CachedAppOptimizerTest {
mProcessDependencies.setRssAfterCompaction(rssAfter);
// When moving within cached state
- mCachedAppOptimizerUnderTest.onOomAdjustChanged(
- ProcessList.CACHED_APP_MIN_ADJ, ProcessList.CACHED_APP_MIN_ADJ + 1, processRecord);
- waitForHandler();
- // THEN process IS NOT compacted.
- assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNull();
-
- // When moving into cached state
- mCachedAppOptimizerUnderTest.onOomAdjustChanged(ProcessList.CACHED_APP_MIN_ADJ - 1,
- ProcessList.CACHED_APP_MIN_ADJ + 1, processRecord);
+ mCachedAppOptimizerUnderTest.onProcessFrozen(processRecord);
waitForHandler();
// THEN process IS compacted.
assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();