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

Commit 3d961ed7 authored by Edgar Arriaga's avatar Edgar Arriaga Committed by Cherrypicker Worker
Browse files

Remove some no longer used compaction variables

Test: am compact file <processname> <uid>
Bug: 265473345
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7000b175d9f173d2296bf955f6031c673b5e38b5)
Merged-In: Ifb4e69857b7a0a2ef0d9d40b05de377b5be2788b
Change-Id: Ifb4e69857b7a0a2ef0d9d40b05de377b5be2788b
parent 1263d513
Loading
Loading
Loading
Loading
+0 −60
Original line number Diff line number Diff line
@@ -66,8 +66,6 @@ public final class CachedAppOptimizer {
    // Flags stored in the DeviceConfig API.
    @VisibleForTesting static final String KEY_USE_COMPACTION = "use_compaction";
    @VisibleForTesting static final String KEY_USE_FREEZER = "use_freezer";
    @VisibleForTesting static final String KEY_COMPACT_ACTION_1 = "compact_action_1";
    @VisibleForTesting static final String KEY_COMPACT_ACTION_2 = "compact_action_2";
    @VisibleForTesting static final String KEY_COMPACT_THROTTLE_1 = "compact_throttle_1";
    @VisibleForTesting static final String KEY_COMPACT_THROTTLE_2 = "compact_throttle_2";
    @VisibleForTesting static final String KEY_COMPACT_THROTTLE_3 = "compact_throttle_3";
@@ -99,15 +97,6 @@ public final class CachedAppOptimizer {
    private static final int RSS_ANON_INDEX = 2;
    private static final int RSS_SWAP_INDEX = 3;

    // Phenotype sends int configurations and we map them to the strings we'll use on device,
    // preventing a weird string value entering the kernel.
    private static final int COMPACT_ACTION_NONE = 0;
    private static final int COMPACT_ACTION_FILE = 1;
    private static final int COMPACT_ACTION_ANON = 2;
    private static final int COMPACT_ACTION_ALL = 3;

    private static final String COMPACT_ACTION_STRING[] = {"", "file", "anon", "all"};

    // Keeps these flags in sync with services/core/jni/com_android_server_am_CachedAppOptimizer.cpp
    private static final int COMPACT_ACTION_FILE_FLAG = 1;
    private static final int COMPACT_ACTION_ANON_FLAG = 2;
@@ -120,8 +109,6 @@ public final class CachedAppOptimizer {
    // Defaults for phenotype flags.
    @VisibleForTesting static final Boolean DEFAULT_USE_COMPACTION = true;
    @VisibleForTesting static final Boolean DEFAULT_USE_FREEZER = true;
    @VisibleForTesting static final int DEFAULT_COMPACT_ACTION_2 = COMPACT_ACTION_ALL;
    @VisibleForTesting static final int DEFAULT_COMPACT_ACTION_1 = COMPACT_ACTION_FILE;
    @VisibleForTesting static final long DEFAULT_COMPACT_THROTTLE_1 = 5_000;
    @VisibleForTesting static final long DEFAULT_COMPACT_THROTTLE_2 = 10_000;
    @VisibleForTesting static final long DEFAULT_COMPACT_THROTTLE_3 = 500;
@@ -240,9 +227,6 @@ public final class CachedAppOptimizer {
                        for (String name : properties.getKeyset()) {
                            if (KEY_USE_COMPACTION.equals(name)) {
                                updateUseCompaction();
                            } else if (KEY_COMPACT_ACTION_1.equals(name)
                                    || KEY_COMPACT_ACTION_2.equals(name)) {
                                updateCompactionActions();
                            } else if (KEY_COMPACT_THROTTLE_1.equals(name)
                                    || KEY_COMPACT_THROTTLE_2.equals(name)
                                    || KEY_COMPACT_THROTTLE_3.equals(name)
@@ -314,12 +298,6 @@ public final class CachedAppOptimizer {

    // Configured by phenotype. Updates from the server take effect immediately.
    @GuardedBy("mPhenotypeFlagLock")
    @VisibleForTesting
    volatile CompactAction mCompactActionSome = compactActionIntToAction(DEFAULT_COMPACT_ACTION_1);
    @GuardedBy("mPhenotypeFlagLock")
    @VisibleForTesting
    volatile CompactAction mCompactActionFull = compactActionIntToAction(DEFAULT_COMPACT_ACTION_2);
    @GuardedBy("mPhenotypeFlagLock")
    @VisibleForTesting volatile long mCompactThrottleSomeSome = DEFAULT_COMPACT_THROTTLE_1;
    @GuardedBy("mPhenotypeFlagLock")
    @VisibleForTesting volatile long mCompactThrottleSomeFull = DEFAULT_COMPACT_THROTTLE_2;
@@ -542,7 +520,6 @@ public final class CachedAppOptimizer {
                CACHED_APP_FREEZER_ENABLED_URI, false, mSettingsObserver);
        synchronized (mPhenotypeFlagLock) {
            updateUseCompaction();
            updateCompactionActions();
            updateCompactionThrottles();
            updateCompactStatsdSampleRate();
            updateFreezerStatsdSampleRate();
@@ -587,8 +564,6 @@ public final class CachedAppOptimizer {
        pw.println("CachedAppOptimizer settings");
        synchronized (mPhenotypeFlagLock) {
            pw.println("  " + KEY_USE_COMPACTION + "=" + mUseCompaction);
            pw.println("  " + KEY_COMPACT_ACTION_1 + "=" + mCompactActionSome);
            pw.println("  " + KEY_COMPACT_ACTION_2 + "=" + mCompactActionFull);
            pw.println("  " + KEY_COMPACT_THROTTLE_1 + "=" + mCompactThrottleSomeSome);
            pw.println("  " + KEY_COMPACT_THROTTLE_2 + "=" + mCompactThrottleSomeFull);
            pw.println("  " + KEY_COMPACT_THROTTLE_3 + "=" + mCompactThrottleFullSome);
@@ -761,21 +736,6 @@ public final class CachedAppOptimizer {
        return false;
    }

    private CompactAction resolveCompactActionForProfile(CompactProfile profile) {
        CompactAction action;
        switch (profile) {
            case SOME:
                action = CompactAction.FILE;
                break;
            case FULL:
                action = CompactAction.ALL;
                break;
            default:
                action = CompactAction.NONE;
        }
        return action;
    }

    private AggregatedProcessCompactionStats getPerProcessAggregatedCompactStat(
            String processName) {
        if (processName == null) {
@@ -1050,18 +1010,6 @@ public final class CachedAppOptimizer {
        });
    }

    @GuardedBy("mPhenotypeFlagLock")
    private void updateCompactionActions() {
        int compactAction1 = DeviceConfig.getInt(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                KEY_COMPACT_ACTION_1, DEFAULT_COMPACT_ACTION_1);

        int compactAction2 = DeviceConfig.getInt(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                KEY_COMPACT_ACTION_2, DEFAULT_COMPACT_ACTION_2);

        mCompactActionSome = compactActionIntToAction(compactAction1);
        mCompactActionFull = compactActionIntToAction(compactAction2);
    }

    @GuardedBy("mPhenotypeFlagLock")
    private void updateCompactionThrottles() {
        boolean useThrottleDefaults = false;
@@ -1235,14 +1183,6 @@ public final class CachedAppOptimizer {
        return true;
    }

    static CompactAction compactActionIntToAction(int action) {
        if (action < 0 || action >= CompactAction.values().length) {
            return CompactAction.NONE;
        }

        return CompactAction.values()[action];
    }

    // This will ensure app will be out of the freezer for at least mFreezerDebounceTimeout.
    @GuardedBy("mAm")
    void unfreezeTemporarily(ProcessRecord app, @OomAdjuster.OomAdjReason int reason) {
+0 −84
Original line number Diff line number Diff line
@@ -155,12 +155,6 @@ public final class CachedAppOptimizerTest {
        synchronized (mCachedAppOptimizerUnderTest.mPhenotypeFlagLock) {
            assertThat(mCachedAppOptimizerUnderTest.useCompaction()).isEqualTo(
                    CachedAppOptimizer.DEFAULT_USE_COMPACTION);
            assertThat(mCachedAppOptimizerUnderTest.mCompactActionSome)
                    .isEqualTo(
                            compactActionIntToAction(CachedAppOptimizer.DEFAULT_COMPACT_ACTION_1));
            assertThat(mCachedAppOptimizerUnderTest.mCompactActionFull)
                    .isEqualTo(
                            compactActionIntToAction(CachedAppOptimizer.DEFAULT_COMPACT_ACTION_2));
            assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleSomeSome).isEqualTo(
                    CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_1);
            assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleSomeFull).isEqualTo(
@@ -209,12 +203,6 @@ public final class CachedAppOptimizerTest {
        assertThat(CachedAppOptimizer.DEFAULT_USE_COMPACTION).isTrue();
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_USE_COMPACTION, "true", false);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_ACTION_1,
                Integer.toString((CachedAppOptimizer.DEFAULT_COMPACT_ACTION_1 + 1 % 4) + 1), false);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_ACTION_2,
                Integer.toString((CachedAppOptimizer.DEFAULT_COMPACT_ACTION_2 + 1 % 4) + 1), false);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_THROTTLE_1,
                Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_1 + 1), false);
@@ -266,12 +254,6 @@ public final class CachedAppOptimizerTest {
        assertThat(mCachedAppOptimizerUnderTest.useCompaction()).isTrue();
        assertThat(mCachedAppOptimizerUnderTest.mCachedAppOptimizerThread.isAlive()).isTrue();

        assertThat(mCachedAppOptimizerUnderTest.mCompactActionSome)
                .isEqualTo(compactActionIntToAction(
                        (CachedAppOptimizer.DEFAULT_COMPACT_ACTION_1 + 1 % 4) + 1));
        assertThat(mCachedAppOptimizerUnderTest.mCompactActionFull)
                .isEqualTo(compactActionIntToAction(
                        (CachedAppOptimizer.DEFAULT_COMPACT_ACTION_2 + 1 % 4) + 1));
        assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleSomeSome).isEqualTo(
                CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_1 + 1);
        assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleSomeFull).isEqualTo(
@@ -403,72 +385,6 @@ public final class CachedAppOptimizerTest {
        assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isFalse();
    }

    @Test
    public void compactAction_listensToDeviceConfigChanges() throws InterruptedException {
        mCachedAppOptimizerUnderTest.init();

        // When we override new values for the compaction action with reasonable values...

        // There are four possible values for compactAction[Some|Full].
        for (int i = 1; i < 5; i++) {
            mCountDown = new CountDownLatch(2);
            int expectedSome = (CachedAppOptimizer.DEFAULT_COMPACT_ACTION_1 + i) % 4 + 1;
            DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                    CachedAppOptimizer.KEY_COMPACT_ACTION_1, Integer.toString(expectedSome), false);
            int expectedFull = (CachedAppOptimizer.DEFAULT_COMPACT_ACTION_2 + i) % 4 + 1;
            DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                    CachedAppOptimizer.KEY_COMPACT_ACTION_2, Integer.toString(expectedFull), false);
            assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();

            // Then the updates are reflected in the flags.
            synchronized (mCachedAppOptimizerUnderTest.mPhenotypeFlagLock) {
                assertThat(mCachedAppOptimizerUnderTest.mCompactActionSome)
                        .isEqualTo(compactActionIntToAction(expectedSome));
                assertThat(mCachedAppOptimizerUnderTest.mCompactActionFull)
                        .isEqualTo(compactActionIntToAction(expectedFull));
            }
        }
    }

    @Test
    public void compactAction_listensToDeviceConfigChangesBadValues() throws InterruptedException {
        mCachedAppOptimizerUnderTest.init();

        // When we override new values for the compaction action with bad values ...
        mCountDown = new CountDownLatch(2);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_ACTION_1, "foo", false);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_ACTION_2, "foo", false);
        assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();

        synchronized (mCachedAppOptimizerUnderTest.mPhenotypeFlagLock) {
            // Then the default values are reflected in the flag
            assertThat(mCachedAppOptimizerUnderTest.mCompactActionSome)
                    .isEqualTo(
                            compactActionIntToAction(CachedAppOptimizer.DEFAULT_COMPACT_ACTION_1));
            assertThat(mCachedAppOptimizerUnderTest.mCompactActionFull)
                    .isEqualTo(
                            compactActionIntToAction(CachedAppOptimizer.DEFAULT_COMPACT_ACTION_2));
        }

        mCountDown = new CountDownLatch(2);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_ACTION_1, "", false);
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                CachedAppOptimizer.KEY_COMPACT_ACTION_2, "", false);
        assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();

        synchronized (mCachedAppOptimizerUnderTest.mPhenotypeFlagLock) {
            assertThat(mCachedAppOptimizerUnderTest.mCompactActionSome)
                    .isEqualTo(
                            compactActionIntToAction(CachedAppOptimizer.DEFAULT_COMPACT_ACTION_1));
            assertThat(mCachedAppOptimizerUnderTest.mCompactActionFull)
                    .isEqualTo(
                            compactActionIntToAction(CachedAppOptimizer.DEFAULT_COMPACT_ACTION_2));
        }
    }

    @Test
    public void compactThrottle_listensToDeviceConfigChanges() throws InterruptedException {
        mCachedAppOptimizerUnderTest.init();