From f4bc936d1cc6dc8da63a5f5561fb1df9cf285d37 Mon Sep 17 00:00:00 2001 From: Tim Murray Date: Fri, 11 Nov 2022 12:23:50 -0800 Subject: [PATCH] ProcessStateRecord: add oom_adj type tracing Enable the debug flag for trace output in system_server of all OomAdjuster state transitions. Test: local trace Bug: 247573320 Change-Id: Id4519038198012ed3eb43f21a5a99f9323a592a7 --- .../com/android/server/am/ProcessStateRecord.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/services/core/java/com/android/server/am/ProcessStateRecord.java b/services/core/java/com/android/server/am/ProcessStateRecord.java index d2ef479ed5241..2ad2077d01bc9 100644 --- a/services/core/java/com/android/server/am/ProcessStateRecord.java +++ b/services/core/java/com/android/server/am/ProcessStateRecord.java @@ -30,6 +30,7 @@ import android.annotation.ElapsedRealtimeLong; import android.app.ActivityManager; import android.content.ComponentName; import android.os.SystemClock; +import android.os.Trace; import android.util.Slog; import android.util.TimeUtils; @@ -43,6 +44,9 @@ import java.io.PrintWriter; * The state info of the process, including proc state, oom adj score, et al. */ final class ProcessStateRecord { + // Enable this to trace all OomAdjuster state transitions + private static final boolean TRACE_OOM_ADJ = false; + private final ProcessRecord mApp; private final ActivityManagerService mService; private final ActivityManagerGlobalLock mProcLock; @@ -916,6 +920,12 @@ final class ProcessStateRecord { @GuardedBy("mService") void setAdjType(String adjType) { + if (TRACE_OOM_ADJ) { + Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, + "oom:" + mApp.processName + "/u" + mApp.uid, 0); + Trace.asyncTraceForTrackBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, + "oom:" + mApp.processName + "/u" + mApp.uid, adjType, 0); + } mAdjType = adjType; } @@ -1153,6 +1163,10 @@ final class ProcessStateRecord { @GuardedBy({"mService", "mProcLock"}) void onCleanupApplicationRecordLSP() { + if (TRACE_OOM_ADJ) { + Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, + "oom:" + mApp.processName + "/u" + mApp.uid, 0); + } setHasForegroundActivities(false); mHasShownUi = false; mForcingToImportant = null;