vold: add gc period in setGCUrgentPace am: 7c788fc3e9
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2032446 Change-Id: I691c355f6eb91f83af0b4bbdade10bd67ceb62a3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
81ba5bcf1c
5 changed files with 10 additions and 8 deletions
|
@ -87,7 +87,7 @@ static const int GC_TIMEOUT_SEC = 420;
|
|||
static const int DEVGC_TIMEOUT_SEC = 120;
|
||||
static const int KBYTES_IN_SEGMENT = 2048;
|
||||
static const int MIN_GC_URGENT_SLEEP_TIME = 500;
|
||||
static const int ONE_HOUR_IN_MS = 3600000;
|
||||
static const int ONE_MINUTE_IN_MS = 60000;
|
||||
static const int GC_NORMAL_MODE = 0;
|
||||
static const int GC_URGENT_MID_MODE = 3;
|
||||
|
||||
|
@ -531,7 +531,7 @@ int32_t GetStorageLifeTime() {
|
|||
}
|
||||
|
||||
void SetGCUrgentPace(int32_t neededSegments, int32_t minSegmentThreshold, float dirtyReclaimRate,
|
||||
float reclaimWeight) {
|
||||
float reclaimWeight, int32_t gcPeriod) {
|
||||
std::list<std::string> paths;
|
||||
bool needGC = true;
|
||||
|
||||
|
@ -586,7 +586,7 @@ void SetGCUrgentPace(int32_t neededSegments, int32_t minSegmentThreshold, float
|
|||
if (neededSegments == 0) {
|
||||
sleepTime = MIN_GC_URGENT_SLEEP_TIME;
|
||||
} else {
|
||||
sleepTime = ONE_HOUR_IN_MS / neededSegments;
|
||||
sleepTime = gcPeriod * ONE_MINUTE_IN_MS / neededSegments;
|
||||
if (sleepTime < MIN_GC_URGENT_SLEEP_TIME) {
|
||||
sleepTime = MIN_GC_URGENT_SLEEP_TIME;
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ int RunIdleMaint(bool needGC, const android::sp<android::os::IVoldTaskListener>&
|
|||
int AbortIdleMaint(const android::sp<android::os::IVoldTaskListener>& listener);
|
||||
int32_t GetStorageLifeTime();
|
||||
void SetGCUrgentPace(int32_t neededSegments, int32_t minSegmentThreshold, float dirtyReclaimRate,
|
||||
float reclaimWeight);
|
||||
float reclaimWeight, int32_t gcPeriod);
|
||||
void RefreshLatestWrite();
|
||||
int32_t GetWriteAmount();
|
||||
|
||||
|
|
|
@ -494,11 +494,12 @@ binder::Status VoldNativeService::getStorageLifeTime(int32_t* _aidl_return) {
|
|||
|
||||
binder::Status VoldNativeService::setGCUrgentPace(int32_t neededSegments,
|
||||
int32_t minSegmentThreshold,
|
||||
float dirtyReclaimRate, float reclaimWeight) {
|
||||
float dirtyReclaimRate, float reclaimWeight,
|
||||
int32_t gcPeriod) {
|
||||
ENFORCE_SYSTEM_OR_ROOT;
|
||||
ACQUIRE_LOCK;
|
||||
|
||||
SetGCUrgentPace(neededSegments, minSegmentThreshold, dirtyReclaimRate, reclaimWeight);
|
||||
SetGCUrgentPace(neededSegments, minSegmentThreshold, dirtyReclaimRate, reclaimWeight, gcPeriod);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ class VoldNativeService : public BinderService<VoldNativeService>, public os::Bn
|
|||
binder::Status abortIdleMaint(const android::sp<android::os::IVoldTaskListener>& listener);
|
||||
binder::Status getStorageLifeTime(int32_t* _aidl_return);
|
||||
binder::Status setGCUrgentPace(int32_t neededSegments, int32_t minSegmentThreshold,
|
||||
float dirtyReclaimRate, float reclaimWeight);
|
||||
float dirtyReclaimRate, float reclaimWeight, int32_t gcPeriod);
|
||||
binder::Status refreshLatestWrite();
|
||||
binder::Status getWriteAmount(int32_t* _aidl_return);
|
||||
|
||||
|
|
|
@ -68,7 +68,8 @@ interface IVold {
|
|||
void abortIdleMaint(IVoldTaskListener listener);
|
||||
int getStorageLifeTime();
|
||||
void setGCUrgentPace(int neededSegments, int minSegmentThreshold,
|
||||
float dirtyReclaimRate, float reclaimWeight);
|
||||
float dirtyReclaimRate, float reclaimWeight,
|
||||
int gcPeriod);
|
||||
void refreshLatestWrite();
|
||||
int getWriteAmount();
|
||||
|
||||
|
|
Loading…
Reference in a new issue