From 7e477ab0f86986feb061bf5a7e9c5a2083268343 Mon Sep 17 00:00:00 2001 From: Calin Juravle Date: Tue, 18 May 2021 08:27:06 -0700 Subject: [PATCH] Add cmdline as a compilation reason Set the compiler reason to 'cmdline' when the compilation was initiated from cmdline. This will effectivively eliminate the 'unknown' reason from our metrics (except in some corner cases) (cherry picked from commit 303a702a9c09b72f812c8880c7acd754cd4a33d1) Test: adb shell cmd compile ... Bug: 188655918 Merged-In: I0cb6e9182530bc2d88975af185a0a8256fae2c2c Change-Id: Id17ddceab2c9a4e5c30311e250817d8e0185cca6 --- .../java/com/android/server/pm/PackageManagerService.java | 6 +++--- .../server/pm/PackageManagerServiceCompilerMapping.java | 4 +--- .../java/com/android/server/pm/dex/ArtManagerService.java | 3 ++- .../java/com/android/server/pm/dex/ArtStatsLogUtils.java | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 4faa18e9662c3..d0af1627ac5bd 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -780,7 +780,6 @@ public class PackageManagerService extends IPackageManager.Stub private static final String COMPANION_PACKAGE_NAME = "com.android.companiondevicemanager"; // Compilation reasons. - public static final int REASON_UNKNOWN = -1; public static final int REASON_FIRST_BOOT = 0; public static final int REASON_BOOT_AFTER_OTA = 1; public static final int REASON_POST_BOOT = 2; @@ -793,7 +792,8 @@ public class PackageManagerService extends IPackageManager.Stub public static final int REASON_BACKGROUND_DEXOPT = 9; public static final int REASON_AB_OTA = 10; public static final int REASON_INACTIVE_PACKAGE_DOWNGRADE = 11; - public static final int REASON_SHARED = 12; + public static final int REASON_CMDLINE = 12; + public static final int REASON_SHARED = 13; public static final int REASON_LAST = REASON_SHARED; @@ -11935,7 +11935,7 @@ public class PackageManagerService extends IPackageManager.Stub int flags = (checkProfiles ? DexoptOptions.DEXOPT_CHECK_FOR_PROFILES_UPDATES : 0) | (force ? DexoptOptions.DEXOPT_FORCE : 0) | (bootComplete ? DexoptOptions.DEXOPT_BOOT_COMPLETE : 0); - return performDexOpt(new DexoptOptions(packageName, REASON_UNKNOWN, + return performDexOpt(new DexoptOptions(packageName, REASON_CMDLINE, targetCompilerFilter, splitName, flags)); } diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java b/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java index 636db111be882..7c1f054a8fec8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java +++ b/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java @@ -40,6 +40,7 @@ public class PackageManagerServiceCompilerMapping { "bg-dexopt", "ab-ota", "inactive", + "cmdline", // "shared" must be the last entry "shared" }; @@ -141,9 +142,6 @@ public class PackageManagerServiceCompilerMapping { } public static String getReasonName(int reason) { - if (reason == PackageManagerService.REASON_UNKNOWN) { - return "unknown"; - } if (reason < 0 || reason >= REASON_STRINGS.length) { throw new IllegalArgumentException("reason " + reason + " invalid"); } diff --git a/services/core/java/com/android/server/pm/dex/ArtManagerService.java b/services/core/java/com/android/server/pm/dex/ArtManagerService.java index 3576950bd3a61..1859b4c830326 100644 --- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java +++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java @@ -607,6 +607,7 @@ public class ArtManagerService extends android.content.pm.dex.IArtManager.Stub { TRON_COMPILATION_REASON_INSTALL_BULK_SECONDARY_DOWNGRADED_WITH_DM = 19; private static final int TRON_COMPILATION_REASON_BOOT_AFTER_OTA = 20; private static final int TRON_COMPILATION_REASON_POST_BOOT = 21; + private static final int TRON_COMPILATION_REASON_CMDLINE = 22; // The annotation to add as a suffix to the compilation reason when dexopt was // performed with dex metadata. @@ -617,7 +618,7 @@ public class ArtManagerService extends android.content.pm.dex.IArtManager.Stub { */ private static int getCompilationReasonTronValue(String compilationReason) { switch (compilationReason) { - case "unknown" : return TRON_COMPILATION_REASON_UNKNOWN; + case "cmdline" : return TRON_COMPILATION_REASON_CMDLINE; case "error" : return TRON_COMPILATION_REASON_ERROR; case "first-boot" : return TRON_COMPILATION_REASON_FIRST_BOOT; case "boot-after-ota": return TRON_COMPILATION_REASON_BOOT_AFTER_OTA; diff --git a/services/core/java/com/android/server/pm/dex/ArtStatsLogUtils.java b/services/core/java/com/android/server/pm/dex/ArtStatsLogUtils.java index 091d820b834cb..946f8d52ae435 100644 --- a/services/core/java/com/android/server/pm/dex/ArtStatsLogUtils.java +++ b/services/core/java/com/android/server/pm/dex/ArtStatsLogUtils.java @@ -58,8 +58,6 @@ public class ArtStatsLogUtils { private static final Map COMPILATION_REASON_MAP = new HashMap(); static { - COMPILATION_REASON_MAP.put(PackageManagerService.REASON_UNKNOWN, ArtStatsLog. - ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_UNKNOWN); COMPILATION_REASON_MAP.put(PackageManagerService.REASON_FIRST_BOOT, ArtStatsLog. ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_FIRST_BOOT); COMPILATION_REASON_MAP.put(PackageManagerService.REASON_BOOT_AFTER_OTA, ArtStatsLog. @@ -85,6 +83,8 @@ public class ArtStatsLogUtils { COMPILATION_REASON_MAP.put(PackageManagerService.REASON_INACTIVE_PACKAGE_DOWNGRADE, ArtStatsLog. ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_INACTIVE); + COMPILATION_REASON_MAP.put(PackageManagerService.REASON_CMDLINE, + ArtStatsLog.ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_CMDLINE); COMPILATION_REASON_MAP.put(PackageManagerService.REASON_SHARED, ArtStatsLog.ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_SHARED); }