From a31a605797a9ebb1ae95571eaaf1c99b0a7799bf Mon Sep 17 00:00:00 2001 From: Daeho Jeong Date: Thu, 23 Jun 2022 11:32:41 -0700 Subject: [PATCH] Make smart idle maint update write amount record every period Now, when the condition doesn't meet, smart idle maintenance service doesn't update write amount record. Fixed it, since it should be updated every period. Test: check smart idle maint log of StorageManagerService Signed-off-by: Daeho Jeong Change-Id: I339109fcaa821620a3b9b4b8c49e25fd18d03cf3 --- .../com/android/server/StorageManagerService.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 7cbe218a92340..3b2cd80abdf74 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -2728,6 +2728,14 @@ class StorageManagerService extends IStorageManager.Stub enforcePermission(android.Manifest.permission.MOUNT_FORMAT_FILESYSTEMS); try { + int latestWrite = mVold.getWriteAmount(); + if (latestWrite == -1) { + Slog.w(TAG, "Failed to get storage write record"); + return; + } + + updateStorageWriteRecords(latestWrite); + // Block based checkpoint process runs fstrim. So, if checkpoint is in progress // (first boot after OTA), We skip the smart idle maintenance if (!needsCheckpoint() || !supportsBlockCheckpoint()) { @@ -2735,13 +2743,6 @@ class StorageManagerService extends IStorageManager.Stub return; } - int latestWrite = mVold.getWriteAmount(); - if (latestWrite == -1) { - Slog.w(TAG, "Failed to get storage write record"); - return; - } - - updateStorageWriteRecords(latestWrite); int avgWriteAmount = getAverageWriteAmount(); Slog.i(TAG, "Set smart idle maintenance: " + "latest write amount: " +