From ca3329ccb50e896b60072f73af41612de7115426 Mon Sep 17 00:00:00 2001 From: Philip Cuadra Date: Fri, 24 Jun 2016 12:02:06 -0700 Subject: [PATCH] Add tracing events for system service lifecycle events To help debug time spent on startup, add tracing events for system service lifecycle events. Change-Id: Icfdafe2b1fa56a2533af0cf08810ef455c20939a --- .../com/android/server/SystemServiceManager.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/services/core/java/com/android/server/SystemServiceManager.java b/services/core/java/com/android/server/SystemServiceManager.java index ecc69e90b7a30..90f507c146bf3 100644 --- a/services/core/java/com/android/server/SystemServiceManager.java +++ b/services/core/java/com/android/server/SystemServiceManager.java @@ -156,12 +156,15 @@ public class SystemServiceManager { final int serviceLen = mServices.size(); for (int i = 0; i < serviceLen; i++) { final SystemService service = mServices.get(i); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onStartUser " + + service.getClass().getName()); try { service.onStartUser(userHandle); } catch (Exception ex) { Slog.wtf(TAG, "Failure reporting start of user " + userHandle + " to service " + service.getClass().getName(), ex); } + Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } } @@ -169,12 +172,15 @@ public class SystemServiceManager { final int serviceLen = mServices.size(); for (int i = 0; i < serviceLen; i++) { final SystemService service = mServices.get(i); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onUnlockUser " + + service.getClass().getName()); try { service.onUnlockUser(userHandle); } catch (Exception ex) { Slog.wtf(TAG, "Failure reporting unlock of user " + userHandle + " to service " + service.getClass().getName(), ex); } + Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } } @@ -182,12 +188,15 @@ public class SystemServiceManager { final int serviceLen = mServices.size(); for (int i = 0; i < serviceLen; i++) { final SystemService service = mServices.get(i); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onSwitchUser " + + service.getClass().getName()); try { service.onSwitchUser(userHandle); } catch (Exception ex) { Slog.wtf(TAG, "Failure reporting switch of user " + userHandle + " to service " + service.getClass().getName(), ex); } + Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } } @@ -195,12 +204,15 @@ public class SystemServiceManager { final int serviceLen = mServices.size(); for (int i = 0; i < serviceLen; i++) { final SystemService service = mServices.get(i); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onStopUser " + + service.getClass().getName()); try { service.onStopUser(userHandle); } catch (Exception ex) { Slog.wtf(TAG, "Failure reporting stop of user " + userHandle + " to service " + service.getClass().getName(), ex); } + Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } } @@ -208,12 +220,15 @@ public class SystemServiceManager { final int serviceLen = mServices.size(); for (int i = 0; i < serviceLen; i++) { final SystemService service = mServices.get(i); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onCleanupUser " + + service.getClass().getName()); try { service.onCleanupUser(userHandle); } catch (Exception ex) { Slog.wtf(TAG, "Failure reporting cleanup of user " + userHandle + " to service " + service.getClass().getName(), ex); } + Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } }