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
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user