diff options
| author | 2022-01-09 20:20:14 +0000 | |
|---|---|---|
| committer | 2022-01-09 20:20:14 +0000 | |
| commit | cd88027c3eb12baaefbee93b95f088d2611e18e4 (patch) | |
| tree | 4eb2ed7f397fcfeb1e1575dc1827580fc78e046c | |
| parent | c209fa53fd0ef93f257150907e10ebab67703844 (diff) | |
| parent | bdff40e8f3cc513dd464a0f6907f1dab78070621 (diff) | |
Merge "bgDexOpt: record last execution time and duration to dump"
| -rw-r--r-- | services/core/java/com/android/server/pm/BackgroundDexOptService.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index 27db2f90ab25..05a51ccfaca7 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -37,6 +37,7 @@ import android.os.PowerManager; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.SystemClock; import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; @@ -146,6 +147,11 @@ public final class BackgroundDexOptService { @GuardedBy("mLock") @Status private int mLastExecutionStatus = STATUS_OK; + @GuardedBy("mLock") + private long mLastExecutionStartTimeMs; + @GuardedBy("mLock") + private long mLastExecutionDurationMs; + // Keeps packages cancelled from PDO for last session. This is for debugging. @GuardedBy("mLock") private final ArraySet<String> mLastCancelledPackages = new ArraySet<String>(); @@ -218,9 +224,15 @@ public final class BackgroundDexOptService { writer.print("mDexOptCancellingThread:"); writer.println(mDexOptCancellingThread); writer.print("mFinishedPostBootUpdate:"); - writer.print(mFinishedPostBootUpdate); - writer.print(",mLastExecutionStatus:"); + writer.println(mFinishedPostBootUpdate); + writer.print("mLastExecutionStatus:"); writer.println(mLastExecutionStatus); + writer.print("mLastExecutionStartTimeMs:"); + writer.println(mLastExecutionStartTimeMs); + writer.print("mLastExecutionDurationMs:"); + writer.println(mLastExecutionDurationMs); + writer.print("now:"); + writer.println(SystemClock.elapsedRealtime()); writer.print("mLastCancelledPackages:"); writer.println(String.join(",", mLastCancelledPackages)); writer.print("mFailedPackageNamesPrimary:"); @@ -514,12 +526,17 @@ public final class BackgroundDexOptService { /** Returns true if completed */ private boolean runIdleOptimization(PackageManagerService pm, ArraySet<String> pkgs, boolean isPostBootUpdate) { + synchronized (mLock) { + mLastExecutionStartTimeMs = SystemClock.elapsedRealtime(); + mLastExecutionDurationMs = -1; + } long lowStorageThreshold = getLowStorageThreshold(); int status = idleOptimizePackages(pm, pkgs, lowStorageThreshold, isPostBootUpdate); logStatus(status); synchronized (mLock) { mLastExecutionStatus = status; + mLastExecutionDurationMs = SystemClock.elapsedRealtime() - mLastExecutionStartTimeMs; } return status == STATUS_OK; |