From 6e3461b67cae27a42a4d77fa277ba2d844ea0cde Mon Sep 17 00:00:00 2001 From: Fyodor Kupolov Date: Thu, 10 Aug 2017 17:00:43 -0700 Subject: Log timings for shutdown stages Renamed BootTimingsTraceLog to TimingsTraceLog. It is now used for boot and shutdown logging. Added measurements for main stages of shutdown in the system server: ShutdownTiming: SendShutdownBroadcast took to complete: 734ms ShutdownTiming: ShutdownActivityManager took to complete: 203ms ShutdownTiming: ShutdownPackageManager took to complete: 17ms ShutdownTiming: ShutdownBt took to complete: 533ms ShutdownTiming: ShutdownRadio took to complete: 534ms ShutdownTiming: ShutdownNfc took to complete: 1536ms ShutdownTiming: ShutdownRadios took to complete: 1538ms ShutdownTiming: ShutdownStorageManager took to complete: 906ms ShutdownTiming: SystemServerShutdown took to complete: 3918ms Bug: 64569080 Test: shutdown/reboot and check logs Change-Id: I636c045852cd1ed6be1c58af6608f70e95756389 --- services/java/com/android/server/SystemServer.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'services/java') diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index a1b9099f8bab..3c1262f089bc 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -45,7 +45,7 @@ import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; import android.os.storage.IStorageManager; -import android.util.BootTimingsTraceLog; +import android.util.TimingsTraceLog; import android.util.DisplayMetrics; import android.util.EventLog; import android.util.Slog; @@ -121,7 +121,6 @@ import java.io.File; import java.io.IOException; import java.util.Locale; import java.util.Timer; -import java.util.TimerTask; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Future; @@ -135,8 +134,8 @@ public final class SystemServer { // Tag for timing measurement of non-main asynchronous operations. private static final String SYSTEM_SERVER_TIMING_ASYNC_TAG = SYSTEM_SERVER_TIMING_TAG + "Async"; - private static final BootTimingsTraceLog BOOT_TIMINGS_TRACE_LOG - = new BootTimingsTraceLog(SYSTEM_SERVER_TIMING_TAG, Trace.TRACE_TAG_SYSTEM_SERVER); + private static final TimingsTraceLog BOOT_TIMINGS_TRACE_LOG + = new TimingsTraceLog(SYSTEM_SERVER_TIMING_TAG, Trace.TRACE_TAG_SYSTEM_SERVER); private static final String ENCRYPTING_STATE = "trigger_restart_min_framework"; private static final String ENCRYPTED_STATE = "1"; @@ -638,7 +637,7 @@ public final class SystemServer { // Start sensor service in a separate thread. Completion should be checked // before using it. mSensorServiceStart = SystemServerInitThreadPool.get().submit(() -> { - BootTimingsTraceLog traceLog = new BootTimingsTraceLog( + TimingsTraceLog traceLog = new TimingsTraceLog( SYSTEM_SERVER_TIMING_ASYNC_TAG, Trace.TRACE_TAG_SYSTEM_SERVER); traceLog.traceBegin(START_SENSOR_SERVICE); startSensorService(); @@ -736,7 +735,7 @@ public final class SystemServer { mZygotePreload = SystemServerInitThreadPool.get().submit(() -> { try { Slog.i(TAG, SECONDARY_ZYGOTE_PRELOAD); - BootTimingsTraceLog traceLog = new BootTimingsTraceLog( + TimingsTraceLog traceLog = new TimingsTraceLog( SYSTEM_SERVER_TIMING_ASYNC_TAG, Trace.TRACE_TAG_SYSTEM_SERVER); traceLog.traceBegin(SECONDARY_ZYGOTE_PRELOAD); if (!Process.zygoteProcess.preloadDefault(Build.SUPPORTED_32_BIT_ABIS[0])) { @@ -1686,7 +1685,7 @@ public final class SystemServer { if (!mOnlyCore) { webviewPrep = SystemServerInitThreadPool.get().submit(() -> { Slog.i(TAG, WEBVIEW_PREPARATION); - BootTimingsTraceLog traceLog = new BootTimingsTraceLog( + TimingsTraceLog traceLog = new TimingsTraceLog( SYSTEM_SERVER_TIMING_ASYNC_TAG, Trace.TRACE_TAG_SYSTEM_SERVER); traceLog.traceBegin(WEBVIEW_PREPARATION); ConcurrentUtils.waitForFutureNoInterrupt(mZygotePreload, "Zygote preload"); -- cgit v1.2.3-59-g8ed1b