Loading core/java/com/android/internal/os/ZygoteInit.java +5 −2 Original line number Diff line number Diff line Loading @@ -657,8 +657,11 @@ public class ZygoteInit { } try { // Report Zygote start time to tron MetricsLogger.histogram(null, "boot_zygote_init", (int) SystemClock.uptimeMillis()); // Report Zygote start time to tron unless it is a runtime restart if (!"1".equals(SystemProperties.get("sys.boot_completed"))) { MetricsLogger.histogram(null, "boot_zygote_init", (int) SystemClock.elapsedRealtime()); } String bootTimeTag = Process.is64Bit() ? "Zygote64Timing" : "Zygote32Timing"; BootTimingsTraceLog bootTimingsTraceLog = new BootTimingsTraceLog(bootTimeTag, Loading services/java/com/android/server/SystemServer.java +24 −11 Original line number Diff line number Diff line Loading @@ -221,6 +221,7 @@ public final class SystemServer { private boolean mOnlyCore; private boolean mFirstBoot; private final boolean mRuntimeRestart; /** * Start the sensor service. Loading @@ -237,6 +238,8 @@ public final class SystemServer { public SystemServer() { // Check for factory test mode. mFactoryTestMode = FactoryTest.getMode(); // Remember if it's runtime restart(when sys.boot_completed is already set) or reboot mRuntimeRestart = "1".equals(SystemProperties.get("sys.boot_completed")); } private void run() { Loading Loading @@ -273,13 +276,16 @@ public final class SystemServer { // Here we go! Slog.i(TAG, "Entered the Android system server!"); int uptimeMillis = (int) SystemClock.uptimeMillis(); int uptimeMillis = (int) SystemClock.elapsedRealtime(); EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, uptimeMillis); if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_system_server_init", uptimeMillis); // Also report when first stage of init has started long initStartNs = SystemProperties.getLong("ro.boottime.init", -1); if (initStartNs >= 0) { MetricsLogger.histogram(null, "boot_android_init", (int)(initStartNs / 1000000)); MetricsLogger.histogram(null, "boot_android_init", (int)(initStartNs / 1000000)); } } // In case the runtime switched since last boot (such as when Loading Loading @@ -372,7 +378,10 @@ public final class SystemServer { if (StrictMode.conditionallyEnableDebugLogging()) { Slog.i(TAG, "Enabled StrictMode for system server main thread."); } MetricsLogger.histogram(null, "boot_system_server_ready", (int) SystemClock.uptimeMillis()); if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_system_server_ready", (int) SystemClock.elapsedRealtime()); } // Loop forever. Looper.loop(); Loading Loading @@ -501,16 +510,20 @@ public final class SystemServer { } // Start the package manager. if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_package_manager_init_start", (int) SystemClock.uptimeMillis()); (int) SystemClock.elapsedRealtime()); } traceBeginAndSlog("StartPackageManagerService"); mPackageManagerService = PackageManagerService.main(mSystemContext, installer, mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore); mFirstBoot = mPackageManagerService.isFirstBoot(); mPackageManager = mSystemContext.getPackageManager(); traceEnd(); if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_package_manager_init_ready", (int) SystemClock.uptimeMillis()); (int) SystemClock.elapsedRealtime()); } // Manages A/B OTA dexopting. This is a bootstrap service as we need it to rename // A/B artifacts after boot, before anything else might touch/need them. // Note: this isn't needed during decryption (we don't have /data anyways). Loading Loading
core/java/com/android/internal/os/ZygoteInit.java +5 −2 Original line number Diff line number Diff line Loading @@ -657,8 +657,11 @@ public class ZygoteInit { } try { // Report Zygote start time to tron MetricsLogger.histogram(null, "boot_zygote_init", (int) SystemClock.uptimeMillis()); // Report Zygote start time to tron unless it is a runtime restart if (!"1".equals(SystemProperties.get("sys.boot_completed"))) { MetricsLogger.histogram(null, "boot_zygote_init", (int) SystemClock.elapsedRealtime()); } String bootTimeTag = Process.is64Bit() ? "Zygote64Timing" : "Zygote32Timing"; BootTimingsTraceLog bootTimingsTraceLog = new BootTimingsTraceLog(bootTimeTag, Loading
services/java/com/android/server/SystemServer.java +24 −11 Original line number Diff line number Diff line Loading @@ -221,6 +221,7 @@ public final class SystemServer { private boolean mOnlyCore; private boolean mFirstBoot; private final boolean mRuntimeRestart; /** * Start the sensor service. Loading @@ -237,6 +238,8 @@ public final class SystemServer { public SystemServer() { // Check for factory test mode. mFactoryTestMode = FactoryTest.getMode(); // Remember if it's runtime restart(when sys.boot_completed is already set) or reboot mRuntimeRestart = "1".equals(SystemProperties.get("sys.boot_completed")); } private void run() { Loading Loading @@ -273,13 +276,16 @@ public final class SystemServer { // Here we go! Slog.i(TAG, "Entered the Android system server!"); int uptimeMillis = (int) SystemClock.uptimeMillis(); int uptimeMillis = (int) SystemClock.elapsedRealtime(); EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, uptimeMillis); if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_system_server_init", uptimeMillis); // Also report when first stage of init has started long initStartNs = SystemProperties.getLong("ro.boottime.init", -1); if (initStartNs >= 0) { MetricsLogger.histogram(null, "boot_android_init", (int)(initStartNs / 1000000)); MetricsLogger.histogram(null, "boot_android_init", (int)(initStartNs / 1000000)); } } // In case the runtime switched since last boot (such as when Loading Loading @@ -372,7 +378,10 @@ public final class SystemServer { if (StrictMode.conditionallyEnableDebugLogging()) { Slog.i(TAG, "Enabled StrictMode for system server main thread."); } MetricsLogger.histogram(null, "boot_system_server_ready", (int) SystemClock.uptimeMillis()); if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_system_server_ready", (int) SystemClock.elapsedRealtime()); } // Loop forever. Looper.loop(); Loading Loading @@ -501,16 +510,20 @@ public final class SystemServer { } // Start the package manager. if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_package_manager_init_start", (int) SystemClock.uptimeMillis()); (int) SystemClock.elapsedRealtime()); } traceBeginAndSlog("StartPackageManagerService"); mPackageManagerService = PackageManagerService.main(mSystemContext, installer, mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore); mFirstBoot = mPackageManagerService.isFirstBoot(); mPackageManager = mSystemContext.getPackageManager(); traceEnd(); if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_package_manager_init_ready", (int) SystemClock.uptimeMillis()); (int) SystemClock.elapsedRealtime()); } // Manages A/B OTA dexopting. This is a bootstrap service as we need it to rename // A/B artifacts after boot, before anything else might touch/need them. // Note: this isn't needed during decryption (we don't have /data anyways). Loading