From 38c28f3b5f9f038a2d3dee2a9482aad055e77a37 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. Bug: 241601216 Test: check smart idle maint log of StorageManagerService Signed-off-by: Daeho Jeong Change-Id: I339109fcaa821620a3b9b4b8c49e25fd18d03cf3 Merged-In: 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 5eec6e58e9250..ae331859a785a 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -2829,6 +2829,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()) { @@ -2836,13 +2844,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: " +