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

Commit b2b7a9b4 authored by Daeho Jeong's avatar Daeho Jeong Committed by Automerger Merge Worker
Browse files

Merge "Make target dirty segment ratio tunable" am: a303ea13 am: 6b1bd9fb...

Merge "Make target dirty segment ratio tunable" am: a303ea13 am: 6b1bd9fb am: 3f02098c am: 932dd4d1

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2132302



Change-Id: I0efe2802fa27daee9ca2fa10a246e31c8ce46a78
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents bfb19f11 932dd4d1
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -362,6 +362,8 @@ class StorageManagerService extends IStorageManager.Stub
    private static final boolean DEFAULT_CHARGING_REQUIRED = true;
    // Minimum GC interval sleep time in ms
    private static final int DEFAULT_MIN_GC_SLEEPTIME = 10000;
    // Target dirty segment ratio to aim to
    private static final int DEFAULT_TARGET_DIRTY_RATIO = 80;

    private volatile int mLifetimePercentThreshold;
    private volatile int mMinSegmentsThreshold;
@@ -370,6 +372,7 @@ class StorageManagerService extends IStorageManager.Stub
    private volatile float mLowBatteryLevel;
    private volatile boolean mChargingRequired;
    private volatile int mMinGCSleepTime;
    private volatile int mTargetDirtyRatio;
    private volatile boolean mNeedGC;

    private volatile boolean mPassedLifetimeThresh;
@@ -2680,6 +2683,8 @@ class StorageManagerService extends IStorageManager.Stub
                "charging_required", DEFAULT_CHARGING_REQUIRED);
            mMinGCSleepTime = DeviceConfig.getInt(DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
                "min_gc_sleeptime", DEFAULT_MIN_GC_SLEEPTIME);
            mTargetDirtyRatio = DeviceConfig.getInt(DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
                "target_dirty_ratio", DEFAULT_TARGET_DIRTY_RATIO);

            // If we use the smart idle maintenance, we need to turn off GC in the traditional idle
            // maintenance to avoid the conflict
@@ -2820,10 +2825,11 @@ class StorageManagerService extends IStorageManager.Stub
                            ", dirty reclaim rate: " + mDirtyReclaimRate +
                            ", segment reclaim weight: " + mSegmentReclaimWeight +
                            ", period(min): " + sSmartIdleMaintPeriod +
                            ", min gc sleep time(ms): " + mMinGCSleepTime);
                            ", min gc sleep time(ms): " + mMinGCSleepTime +
                            ", target dirty ratio: " + mTargetDirtyRatio);
                mVold.setGCUrgentPace(avgWriteAmount, mMinSegmentsThreshold, mDirtyReclaimRate,
                                      mSegmentReclaimWeight, sSmartIdleMaintPeriod,
                                      mMinGCSleepTime);
                                      mMinGCSleepTime, mTargetDirtyRatio);
            } else {
                Slog.i(TAG, "Skipping smart idle maintenance - block based checkpoint in progress");
            }