Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3501ca41 authored by Ioannis Ilkos's avatar Ioannis Ilkos
Browse files

Add tracepoints for process starts

Add a tracepoint when we dispatch the startProcess msg and one for
handling it.

Test: WmTests:ActivityStackSupervisorTests && FrameworksServicesTests:ActivityManagerServiceTest
Change-Id: I796b6875873b6300b843920e00b97b3c83ddb331
parent fe71582e
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -17906,11 +17906,19 @@ public class ActivityManagerService extends IActivityManager.Stub
        @Override
        public void startProcess(String processName, ApplicationInfo info,
                boolean knownToBeDead, String hostingType, ComponentName hostingName) {
            try {
                if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
                    Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "startProcess:"
                            + processName);
                }
                synchronized (ActivityManagerService.this) {
                    startProcessLocked(processName, info, knownToBeDead, 0 /* intentFlags */,
                            hostingType, hostingName, false /* allowWhileBooting */,
                            false /* isolated */, true /* keepIfLarge */);
                }
            } finally {
                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
            }
        }
        @Override
+14 −6
Original line number Diff line number Diff line
@@ -978,12 +978,20 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
            r.notifyUnknownVisibilityLaunched();
        }

        try {
            if (Trace.isTagEnabled(TRACE_TAG_ACTIVITY_MANAGER)) {
                Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "dispatchingStartProcess:"
                        + r.processName);
            }
            // Post message to start process to avoid possible deadlock of calling into AMS with the
            // ATMS lock held.
            final Message msg = PooledLambda.obtainMessage(
                    ActivityManagerInternal::startProcess, mService.mAmInternal, r.processName,
                    r.info.applicationInfo, knownToBeDead, "activity", r.intent.getComponent());
            mService.mH.sendMessage(msg);
        } finally {
            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
        }
    }

    boolean checkStartAnyActivityPermission(Intent intent, ActivityInfo aInfo, String resultWho,