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

Commit a1ff0015 authored by Fyodor Kupolov's avatar Fyodor Kupolov
Browse files

Report app data fixup and prepare timings

They are now reported under SystemServerTimingAsync tag, which is
tracked by boottime dashboard.

Test: manual
Bug: 37186619
Change-Id: Ib3608d7cf27012b5dab1947446fcb8d8496bbf91
parent ec8f3536
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -221,6 +221,7 @@ import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.ArraySet;
import android.util.Base64;
import android.util.Base64;
import android.util.BootTimingsTraceLog;
import android.util.DisplayMetrics;
import android.util.DisplayMetrics;
import android.util.EventLog;
import android.util.EventLog;
import android.util.ExceptionUtils;
import android.util.ExceptionUtils;
@@ -2725,15 +2726,18 @@ public class PackageManagerService extends IPackageManager.Stub {
                    UserHandle.USER_SYSTEM, storageFlags, true /* migrateAppData */,
                    UserHandle.USER_SYSTEM, storageFlags, true /* migrateAppData */,
                    true /* onlyCoreApps */);
                    true /* onlyCoreApps */);
            mPrepareAppDataFuture = SystemServerInitThreadPool.get().submit(() -> {
            mPrepareAppDataFuture = SystemServerInitThreadPool.get().submit(() -> {
                Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "fixup");
                BootTimingsTraceLog traceLog = new BootTimingsTraceLog("SystemServerTimingAsync",
                        Trace.TRACE_TAG_PACKAGE_MANAGER);
                traceLog.traceBegin("AppDataFixup");
                try {
                try {
                    mInstaller.fixupAppData(StorageManager.UUID_PRIVATE_INTERNAL,
                    mInstaller.fixupAppData(StorageManager.UUID_PRIVATE_INTERNAL,
                            StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE);
                            StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE);
                } catch (InstallerException e) {
                } catch (InstallerException e) {
                    Slog.w(TAG, "Trouble fixing GIDs", e);
                    Slog.w(TAG, "Trouble fixing GIDs", e);
                }
                }
                Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
                traceLog.traceEnd();
                traceLog.traceBegin("AppDataPrepare");
                if (deferPackages == null || deferPackages.isEmpty()) {
                if (deferPackages == null || deferPackages.isEmpty()) {
                    return;
                    return;
                }
                }
@@ -2754,6 +2758,7 @@ public class PackageManagerService extends IPackageManager.Stub {
                        count++;
                        count++;
                    }
                    }
                }
                }
                traceLog.traceEnd();
                Slog.i(TAG, "Deferred reconcileAppsData finished " + count + " packages");
                Slog.i(TAG, "Deferred reconcileAppsData finished " + count + " packages");
            }, "prepareAppData");
            }, "prepareAppData");