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

Commit a303ea13 authored by Daeho Jeong's avatar Daeho Jeong Committed by Gerrit Code Review
Browse files

Merge "Make target dirty segment ratio tunable"

parents 371f5eba b2c7eede
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -357,6 +357,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;
@@ -365,6 +367,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;
@@ -2617,6 +2620,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
@@ -2757,10 +2762,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");
            }