From fae543b9f94f23c3a32c6631612b53505474f5f2 Mon Sep 17 00:00:00 2001 From: yawanng Date: Tue, 28 Jul 2020 23:34:54 +0000 Subject: Notify IORap without including packages for secondary dex opt. The current secondary dex opt doesn't distinct between opt performed and skipped, which causes unnecessary traces purge for IORap. Bug:161633001 Test: manually trigger bg-dexopt via 'adb shell cmd jobscheduler run -f android 800' and check the log. Change-Id: Iae4fc0b6fc73707ada8895b38c3ae3f772ac2cd0 --- .../core/java/com/android/server/pm/BackgroundDexOptService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index 5415967c3bdc..d48570fa3b0f 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -337,6 +337,7 @@ public class BackgroundDexOptService extends JobService { private int idleOptimizePackages(PackageManagerService pm, ArraySet pkgs, long lowStorageThreshold) { ArraySet updatedPackages = new ArraySet<>(); + ArraySet updatedPackagesDueToSecondaryDex = new ArraySet<>(); try { final boolean supportSecondaryDex = supportSecondaryDex(); @@ -391,11 +392,14 @@ public class BackgroundDexOptService extends JobService { } int secondaryResult = optimizePackages(pm, pkgs, lowStorageThreshold, - /*isForPrimaryDex*/ false, updatedPackages); + /*isForPrimaryDex*/ false, updatedPackagesDueToSecondaryDex); return secondaryResult; } finally { // Always let the pinner service know about changes. notifyPinService(updatedPackages); + // Only notify IORap the primary dex opt, because we don't want to + // invalidate traces unnecessary due to b/161633001 and that it's + // better to have a trace than no trace at all. notifyPackagesUpdated(updatedPackages); } } -- cgit v1.2.3-59-g8ed1b