Loading services/core/java/com/android/server/am/ActiveServices.java +2 −2 Original line number Diff line number Diff line Loading @@ -8366,7 +8366,7 @@ public final class ActiveServices { protected boolean dumpService(FileDescriptor fd, PrintWriter pw, String name, int[] users, String[] args, int opti, boolean dumpAll) { try { mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mAm.getCachedAppOptimizer().enableFreezer(false); final ArrayList<ServiceRecord> services = new ArrayList<>(); final Predicate<ServiceRecord> filter = DumpUtils.filterRecord(name); Loading Loading @@ -8409,7 +8409,7 @@ public final class ActiveServices { } return true; } finally { mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mAm.getCachedAppOptimizer().enableFreezer(true); } } Loading services/core/java/com/android/server/am/ActivityManagerService.java +40 −30 Original line number Diff line number Diff line Loading @@ -636,6 +636,8 @@ public class ActivityManagerService extends IActivityManager.Stub private static final DateTimeFormatter DROPBOX_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ"); /** Service for optimizing resource usage from background apps. */ private CachedAppOptimizer mCachedAppOptimizer; OomAdjuster mOomAdjuster; @GuardedBy("this") ProcessStateController mProcessStateController; Loading Loading @@ -2135,13 +2137,13 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "meminfo", pw)) return; PriorityDump.dump(mPriorityDumper, fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading @@ -2155,13 +2157,13 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "gfxinfo", pw)) return; mActivityManagerService.dumpGraphicsHardwareUsage(fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading @@ -2175,13 +2177,13 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "dbinfo", pw)) return; mActivityManagerService.dumpDbInfo(fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading @@ -2196,7 +2198,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "cacheinfo", pw)) { Loading @@ -2205,7 +2207,7 @@ public class ActivityManagerService extends IActivityManager.Stub mActivityManagerService.dumpBinderCacheContents(fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading Loading @@ -2421,6 +2423,8 @@ public class ActivityManagerService extends IActivityManager.Stub mProcessList.init(this, activeUids, mPlatformCompat); mAppProfiler = new AppProfiler(this, BackgroundThread.getHandler().getLooper(), null); mPhantomProcessList = new PhantomProcessList(this); mCachedAppOptimizer = new CachedAppOptimizer(this); mProcessStateController = new ProcessStateController.Builder(this, mProcessList, activeUids) .setHandlerThread(handlerThread) .build(); Loading Loading @@ -2489,6 +2493,7 @@ public class ActivityManagerService extends IActivityManager.Stub new LowMemDetector(this)); mPhantomProcessList = new PhantomProcessList(this); final Looper activityTaskLooper = DisplayThread.get().getLooper(); mCachedAppOptimizer = new CachedAppOptimizer(this); mProcessStateController = new ProcessStateController.Builder(this, mProcessList, activeUids) .setLockObject(this) .setTopProcessChangeCallback(this::updateTopAppListeners) Loading Loading @@ -2549,7 +2554,7 @@ public class ActivityManagerService extends IActivityManager.Stub Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.setThreadGroupAndCpuset( mOomAdjuster.mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(), mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(), Process.THREAD_GROUP_SYSTEM); } catch (Exception e) { Slog.w(TAG, "Setting background thread cpuset failed"); Loading Loading @@ -8908,7 +8913,7 @@ public class ActivityManagerService extends IActivityManager.Stub if (!disableSystemCompaction()) { // Compact all non-zygote processes to freshen up the page cache. mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); mCachedAppOptimizer.compactAllSystem(); } mLastIdleTime = now; Loading Loading @@ -10470,7 +10475,7 @@ public class ActivityManagerService extends IActivityManager.Stub synchronized(this) { mConstants.dump(pw); mOomAdjuster.dumpCachedAppOptimizerSettings(pw); mCachedAppOptimizer.dump(pw); pw.println(); if (dumpAll) { pw.println( Loading Loading @@ -10986,7 +10991,7 @@ public class ActivityManagerService extends IActivityManager.Stub mConstants.dump(pw); } } else if ("cao".equals(cmd)) { mOomAdjuster.dumpCachedAppOptimizerSettings(pw); mCachedAppOptimizer.dump(pw); } else if ("timers".equals(cmd)) { AnrTimer.dump(pw, true); } else if ("services".equals(cmd) || "s".equals(cmd)) { Loading Loading @@ -13566,7 +13571,7 @@ public class ActivityManagerService extends IActivityManager.Stub fromBinderDied || app.isolated /* unlinkDeath */); // Cancel pending frozen task and clean up frozen record if there is any. mOomAdjuster.mCachedAppOptimizer.onCleanupApplicationRecordLocked(app); mCachedAppOptimizer.onCleanupApplicationRecordLocked(app); } mAppProfiler.onCleanupApplicationRecordLocked(app); mBroadcastQueue.onApplicationCleanupLocked(app); Loading Loading @@ -16074,15 +16079,12 @@ public class ActivityManagerService extends IActivityManager.Stub enforceDebuggable(proc); mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mCachedAppOptimizer.enableFreezer(false); final RemoteCallback intermediateCallback = new RemoteCallback( new RemoteCallback.OnResultListener() { @Override public void onResult(Bundle result) { result -> { finishCallback.sendResult(result); mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); } mCachedAppOptimizer.enableFreezer(true); }, null); thread.dumpHeap(managed, mallocInfo, runGc, dumpBitmaps, Loading Loading @@ -16185,7 +16187,7 @@ public class ActivityManagerService extends IActivityManager.Stub } try { mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mCachedAppOptimizer.enableFreezer(false); for (int i = procs.size() - 1; i >= 0; i--) { ProcessRecord r = procs.get(i); Loading Loading @@ -16216,7 +16218,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } } finally { mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mCachedAppOptimizer.enableFreezer(true); proto.flush(); } } Loading Loading @@ -16637,8 +16639,7 @@ public class ActivityManagerService extends IActivityManager.Stub app = mPidsSelfLocked.get(pid); } if (app != null) { mOomAdjuster.mCachedAppOptimizer.addFrozenProcessListener(app, executor, listener); mCachedAppOptimizer.addFrozenProcessListener(app, executor, listener); } } } Loading Loading @@ -17912,7 +17913,7 @@ public class ActivityManagerService extends IActivityManager.Stub // sends to the activity. After this race issue between WM/ATMS and AMS is solved, this // workaround can be removed. (b/213288355) if (isNewPending) { mOomAdjuster.mCachedAppOptimizer.unfreezeProcess(pid, OOM_ADJ_REASON_ACTIVITY); mCachedAppOptimizer.unfreezeProcess(pid, OOM_ADJ_REASON_ACTIVITY); } // We need to update the network rules for the app coming to the top state so that // it can access network when the device or the app is in a restricted state Loading Loading @@ -18504,7 +18505,7 @@ public class ActivityManagerService extends IActivityManager.Stub final ProcessRecord app = apps.valueAt(iApp); final IApplicationThread thread = app.getOnewayThread(); if (thread != null) { mOomAdjuster.mCachedAppOptimizer.unfreezeTemporarily(app, mCachedAppOptimizer.unfreezeTemporarily(app, CachedAppOptimizer.UNFREEZE_REASON_PING); pingCount.incrementAndGet(); try { Loading Loading @@ -18592,7 +18593,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public boolean isProcessFrozen(int pid) { enforceCallingPermission(permission.DUMP, "isProcessFrozen()"); return mOomAdjuster.mCachedAppOptimizer.isProcessFrozen(pid); return mCachedAppOptimizer.isProcessFrozen(pid); } @Override Loading Loading @@ -19330,9 +19331,18 @@ public class ActivityManagerService extends IActivityManager.Stub } } CachedAppOptimizer getCachedAppOptimizer() { return mCachedAppOptimizer; } @VisibleForTesting void setCachedAppOptimizer(CachedAppOptimizer cachedAppOptimizer) { mCachedAppOptimizer = cachedAppOptimizer; } @Override public boolean isAppFreezerEnabled() { return mOomAdjuster.mCachedAppOptimizer.useFreezer(); return mCachedAppOptimizer.useFreezer(); } /** Loading @@ -19352,7 +19362,7 @@ public class ActivityManagerService extends IActivityManager.Stub // Only system can toggle the freezer state if (callerUid == SYSTEM_UID || Build.IS_DEBUGGABLE) { return mOomAdjuster.mCachedAppOptimizer.enableFreezer(enable); return mCachedAppOptimizer.enableFreezer(enable); } else { throw new SecurityException("Caller uid " + callerUid + " cannot set freezer state "); } Loading Loading @@ -19448,7 +19458,7 @@ public class ActivityManagerService extends IActivityManager.Stub synchronized (mPidsSelfLocked) { app = mPidsSelfLocked.get(debugPid); } mOomAdjuster.mCachedAppOptimizer.binderError(debugPid, app, code, flags, err); mCachedAppOptimizer.binderError(debugPid, app, code, flags, err); } @GuardedBy("this") services/core/java/com/android/server/am/ActivityManagerShellCommand.java +7 −7 Original line number Diff line number Diff line Loading @@ -1296,7 +1296,7 @@ final class ActivityManagerShellCommand extends ShellCommand { if (isFullCompact) { pw.println("Executing full compaction for " + app.mPid); synchronized (mInternal.mProcLock) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactApp(app, mInternal.getCachedAppOptimizer().compactApp(app, CachedAppOptimizer.CompactProfile.FULL, CachedAppOptimizer.CompactSource.SHELL, true); } Loading @@ -1304,7 +1304,7 @@ final class ActivityManagerShellCommand extends ShellCommand { } else if (isSomeCompact) { pw.println("Executing some compaction for " + app.mPid); synchronized (mInternal.mProcLock) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactApp(app, mInternal.getCachedAppOptimizer().compactApp(app, CachedAppOptimizer.CompactProfile.SOME, CachedAppOptimizer.CompactSource.SHELL, true); } Loading @@ -1313,7 +1313,7 @@ final class ActivityManagerShellCommand extends ShellCommand { } else if (op.equals("system")) { pw.println("Executing system compaction"); synchronized (mInternal.mProcLock) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); mInternal.getCachedAppOptimizer().compactAllSystem(); } pw.println("Finished system compaction"); } else if (op.equals("native")) { Loading @@ -1329,10 +1329,10 @@ final class ActivityManagerShellCommand extends ShellCommand { return -1; } if (isFullCompact) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactNative( mInternal.getCachedAppOptimizer().compactNative( CachedAppOptimizer.CompactProfile.FULL, pid); } else if (isSomeCompact) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactNative( mInternal.getCachedAppOptimizer().compactNative( CachedAppOptimizer.CompactProfile.SOME, pid); } else { getErrPrintWriter().println("Error: unknown compaction type '" + op + "'"); Loading Loading @@ -1365,9 +1365,9 @@ final class ActivityManagerShellCommand extends ShellCommand { synchronized (mInternal.mProcLock) { proc.mOptRecord.setFreezeSticky(isSticky); if (freeze) { mInternal.mOomAdjuster.mCachedAppOptimizer.forceFreezeAppAsyncLSP(proc); mInternal.getCachedAppOptimizer().forceFreezeAppAsyncLSP(proc); } else { mInternal.mOomAdjuster.mCachedAppOptimizer.unfreezeAppLSP(proc, 0, true); mInternal.getCachedAppOptimizer().unfreezeAppLSP(proc, 0, true); } } } Loading services/core/java/com/android/server/am/AppErrors.java +1 −1 Original line number Diff line number Diff line Loading @@ -555,7 +555,7 @@ class AppErrors { } } mService.mOomAdjuster.mCachedAppOptimizer.unfreezeProcess(initialPid, mService.getCachedAppOptimizer().unfreezeProcess(initialPid, CachedAppOptimizer.UNFREEZE_REASON_PROCESS_END); proc.scheduleCrashLocked(message, exceptionTypeId, extras); if (force) { Loading services/core/java/com/android/server/am/AppProfiler.java +1 −1 Original line number Diff line number Diff line Loading @@ -1446,7 +1446,7 @@ public class AppProfiler { if (DEBUG_SWITCH || DEBUG_OOM_ADJ) { Slog.v(TAG_OOM_ADJ, msg + app.processName + " to " + level); } mService.mOomAdjuster.mCachedAppOptimizer.unfreezeTemporarily(app, mService.getCachedAppOptimizer().unfreezeTemporarily(app, CachedAppOptimizer.UNFREEZE_REASON_TRIM_MEMORY); thread.scheduleTrimMemory(level); } catch (RemoteException e) { Loading Loading
services/core/java/com/android/server/am/ActiveServices.java +2 −2 Original line number Diff line number Diff line Loading @@ -8366,7 +8366,7 @@ public final class ActiveServices { protected boolean dumpService(FileDescriptor fd, PrintWriter pw, String name, int[] users, String[] args, int opti, boolean dumpAll) { try { mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mAm.getCachedAppOptimizer().enableFreezer(false); final ArrayList<ServiceRecord> services = new ArrayList<>(); final Predicate<ServiceRecord> filter = DumpUtils.filterRecord(name); Loading Loading @@ -8409,7 +8409,7 @@ public final class ActiveServices { } return true; } finally { mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mAm.getCachedAppOptimizer().enableFreezer(true); } } Loading
services/core/java/com/android/server/am/ActivityManagerService.java +40 −30 Original line number Diff line number Diff line Loading @@ -636,6 +636,8 @@ public class ActivityManagerService extends IActivityManager.Stub private static final DateTimeFormatter DROPBOX_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ"); /** Service for optimizing resource usage from background apps. */ private CachedAppOptimizer mCachedAppOptimizer; OomAdjuster mOomAdjuster; @GuardedBy("this") ProcessStateController mProcessStateController; Loading Loading @@ -2135,13 +2137,13 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "meminfo", pw)) return; PriorityDump.dump(mPriorityDumper, fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading @@ -2155,13 +2157,13 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "gfxinfo", pw)) return; mActivityManagerService.dumpGraphicsHardwareUsage(fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading @@ -2175,13 +2177,13 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "dbinfo", pw)) return; mActivityManagerService.dumpDbInfo(fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading @@ -2196,7 +2198,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mActivityManagerService.mCachedAppOptimizer.enableFreezer(false); if (!DumpUtils.checkDumpAndUsageStatsPermission(mActivityManagerService.mContext, "cacheinfo", pw)) { Loading @@ -2205,7 +2207,7 @@ public class ActivityManagerService extends IActivityManager.Stub mActivityManagerService.dumpBinderCacheContents(fd, pw, args); } finally { mActivityManagerService.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mActivityManagerService.mCachedAppOptimizer.enableFreezer(true); } } } Loading Loading @@ -2421,6 +2423,8 @@ public class ActivityManagerService extends IActivityManager.Stub mProcessList.init(this, activeUids, mPlatformCompat); mAppProfiler = new AppProfiler(this, BackgroundThread.getHandler().getLooper(), null); mPhantomProcessList = new PhantomProcessList(this); mCachedAppOptimizer = new CachedAppOptimizer(this); mProcessStateController = new ProcessStateController.Builder(this, mProcessList, activeUids) .setHandlerThread(handlerThread) .build(); Loading Loading @@ -2489,6 +2493,7 @@ public class ActivityManagerService extends IActivityManager.Stub new LowMemDetector(this)); mPhantomProcessList = new PhantomProcessList(this); final Looper activityTaskLooper = DisplayThread.get().getLooper(); mCachedAppOptimizer = new CachedAppOptimizer(this); mProcessStateController = new ProcessStateController.Builder(this, mProcessList, activeUids) .setLockObject(this) .setTopProcessChangeCallback(this::updateTopAppListeners) Loading Loading @@ -2549,7 +2554,7 @@ public class ActivityManagerService extends IActivityManager.Stub Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.setThreadGroupAndCpuset( mOomAdjuster.mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(), mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(), Process.THREAD_GROUP_SYSTEM); } catch (Exception e) { Slog.w(TAG, "Setting background thread cpuset failed"); Loading Loading @@ -8908,7 +8913,7 @@ public class ActivityManagerService extends IActivityManager.Stub if (!disableSystemCompaction()) { // Compact all non-zygote processes to freshen up the page cache. mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); mCachedAppOptimizer.compactAllSystem(); } mLastIdleTime = now; Loading Loading @@ -10470,7 +10475,7 @@ public class ActivityManagerService extends IActivityManager.Stub synchronized(this) { mConstants.dump(pw); mOomAdjuster.dumpCachedAppOptimizerSettings(pw); mCachedAppOptimizer.dump(pw); pw.println(); if (dumpAll) { pw.println( Loading Loading @@ -10986,7 +10991,7 @@ public class ActivityManagerService extends IActivityManager.Stub mConstants.dump(pw); } } else if ("cao".equals(cmd)) { mOomAdjuster.dumpCachedAppOptimizerSettings(pw); mCachedAppOptimizer.dump(pw); } else if ("timers".equals(cmd)) { AnrTimer.dump(pw, true); } else if ("services".equals(cmd) || "s".equals(cmd)) { Loading Loading @@ -13566,7 +13571,7 @@ public class ActivityManagerService extends IActivityManager.Stub fromBinderDied || app.isolated /* unlinkDeath */); // Cancel pending frozen task and clean up frozen record if there is any. mOomAdjuster.mCachedAppOptimizer.onCleanupApplicationRecordLocked(app); mCachedAppOptimizer.onCleanupApplicationRecordLocked(app); } mAppProfiler.onCleanupApplicationRecordLocked(app); mBroadcastQueue.onApplicationCleanupLocked(app); Loading Loading @@ -16074,15 +16079,12 @@ public class ActivityManagerService extends IActivityManager.Stub enforceDebuggable(proc); mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mCachedAppOptimizer.enableFreezer(false); final RemoteCallback intermediateCallback = new RemoteCallback( new RemoteCallback.OnResultListener() { @Override public void onResult(Bundle result) { result -> { finishCallback.sendResult(result); mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); } mCachedAppOptimizer.enableFreezer(true); }, null); thread.dumpHeap(managed, mallocInfo, runGc, dumpBitmaps, Loading Loading @@ -16185,7 +16187,7 @@ public class ActivityManagerService extends IActivityManager.Stub } try { mOomAdjuster.mCachedAppOptimizer.enableFreezer(false); mCachedAppOptimizer.enableFreezer(false); for (int i = procs.size() - 1; i >= 0; i--) { ProcessRecord r = procs.get(i); Loading Loading @@ -16216,7 +16218,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } } finally { mOomAdjuster.mCachedAppOptimizer.enableFreezer(true); mCachedAppOptimizer.enableFreezer(true); proto.flush(); } } Loading Loading @@ -16637,8 +16639,7 @@ public class ActivityManagerService extends IActivityManager.Stub app = mPidsSelfLocked.get(pid); } if (app != null) { mOomAdjuster.mCachedAppOptimizer.addFrozenProcessListener(app, executor, listener); mCachedAppOptimizer.addFrozenProcessListener(app, executor, listener); } } } Loading Loading @@ -17912,7 +17913,7 @@ public class ActivityManagerService extends IActivityManager.Stub // sends to the activity. After this race issue between WM/ATMS and AMS is solved, this // workaround can be removed. (b/213288355) if (isNewPending) { mOomAdjuster.mCachedAppOptimizer.unfreezeProcess(pid, OOM_ADJ_REASON_ACTIVITY); mCachedAppOptimizer.unfreezeProcess(pid, OOM_ADJ_REASON_ACTIVITY); } // We need to update the network rules for the app coming to the top state so that // it can access network when the device or the app is in a restricted state Loading Loading @@ -18504,7 +18505,7 @@ public class ActivityManagerService extends IActivityManager.Stub final ProcessRecord app = apps.valueAt(iApp); final IApplicationThread thread = app.getOnewayThread(); if (thread != null) { mOomAdjuster.mCachedAppOptimizer.unfreezeTemporarily(app, mCachedAppOptimizer.unfreezeTemporarily(app, CachedAppOptimizer.UNFREEZE_REASON_PING); pingCount.incrementAndGet(); try { Loading Loading @@ -18592,7 +18593,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public boolean isProcessFrozen(int pid) { enforceCallingPermission(permission.DUMP, "isProcessFrozen()"); return mOomAdjuster.mCachedAppOptimizer.isProcessFrozen(pid); return mCachedAppOptimizer.isProcessFrozen(pid); } @Override Loading Loading @@ -19330,9 +19331,18 @@ public class ActivityManagerService extends IActivityManager.Stub } } CachedAppOptimizer getCachedAppOptimizer() { return mCachedAppOptimizer; } @VisibleForTesting void setCachedAppOptimizer(CachedAppOptimizer cachedAppOptimizer) { mCachedAppOptimizer = cachedAppOptimizer; } @Override public boolean isAppFreezerEnabled() { return mOomAdjuster.mCachedAppOptimizer.useFreezer(); return mCachedAppOptimizer.useFreezer(); } /** Loading @@ -19352,7 +19362,7 @@ public class ActivityManagerService extends IActivityManager.Stub // Only system can toggle the freezer state if (callerUid == SYSTEM_UID || Build.IS_DEBUGGABLE) { return mOomAdjuster.mCachedAppOptimizer.enableFreezer(enable); return mCachedAppOptimizer.enableFreezer(enable); } else { throw new SecurityException("Caller uid " + callerUid + " cannot set freezer state "); } Loading Loading @@ -19448,7 +19458,7 @@ public class ActivityManagerService extends IActivityManager.Stub synchronized (mPidsSelfLocked) { app = mPidsSelfLocked.get(debugPid); } mOomAdjuster.mCachedAppOptimizer.binderError(debugPid, app, code, flags, err); mCachedAppOptimizer.binderError(debugPid, app, code, flags, err); } @GuardedBy("this")
services/core/java/com/android/server/am/ActivityManagerShellCommand.java +7 −7 Original line number Diff line number Diff line Loading @@ -1296,7 +1296,7 @@ final class ActivityManagerShellCommand extends ShellCommand { if (isFullCompact) { pw.println("Executing full compaction for " + app.mPid); synchronized (mInternal.mProcLock) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactApp(app, mInternal.getCachedAppOptimizer().compactApp(app, CachedAppOptimizer.CompactProfile.FULL, CachedAppOptimizer.CompactSource.SHELL, true); } Loading @@ -1304,7 +1304,7 @@ final class ActivityManagerShellCommand extends ShellCommand { } else if (isSomeCompact) { pw.println("Executing some compaction for " + app.mPid); synchronized (mInternal.mProcLock) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactApp(app, mInternal.getCachedAppOptimizer().compactApp(app, CachedAppOptimizer.CompactProfile.SOME, CachedAppOptimizer.CompactSource.SHELL, true); } Loading @@ -1313,7 +1313,7 @@ final class ActivityManagerShellCommand extends ShellCommand { } else if (op.equals("system")) { pw.println("Executing system compaction"); synchronized (mInternal.mProcLock) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); mInternal.getCachedAppOptimizer().compactAllSystem(); } pw.println("Finished system compaction"); } else if (op.equals("native")) { Loading @@ -1329,10 +1329,10 @@ final class ActivityManagerShellCommand extends ShellCommand { return -1; } if (isFullCompact) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactNative( mInternal.getCachedAppOptimizer().compactNative( CachedAppOptimizer.CompactProfile.FULL, pid); } else if (isSomeCompact) { mInternal.mOomAdjuster.mCachedAppOptimizer.compactNative( mInternal.getCachedAppOptimizer().compactNative( CachedAppOptimizer.CompactProfile.SOME, pid); } else { getErrPrintWriter().println("Error: unknown compaction type '" + op + "'"); Loading Loading @@ -1365,9 +1365,9 @@ final class ActivityManagerShellCommand extends ShellCommand { synchronized (mInternal.mProcLock) { proc.mOptRecord.setFreezeSticky(isSticky); if (freeze) { mInternal.mOomAdjuster.mCachedAppOptimizer.forceFreezeAppAsyncLSP(proc); mInternal.getCachedAppOptimizer().forceFreezeAppAsyncLSP(proc); } else { mInternal.mOomAdjuster.mCachedAppOptimizer.unfreezeAppLSP(proc, 0, true); mInternal.getCachedAppOptimizer().unfreezeAppLSP(proc, 0, true); } } } Loading
services/core/java/com/android/server/am/AppErrors.java +1 −1 Original line number Diff line number Diff line Loading @@ -555,7 +555,7 @@ class AppErrors { } } mService.mOomAdjuster.mCachedAppOptimizer.unfreezeProcess(initialPid, mService.getCachedAppOptimizer().unfreezeProcess(initialPid, CachedAppOptimizer.UNFREEZE_REASON_PROCESS_END); proc.scheduleCrashLocked(message, exceptionTypeId, extras); if (force) { Loading
services/core/java/com/android/server/am/AppProfiler.java +1 −1 Original line number Diff line number Diff line Loading @@ -1446,7 +1446,7 @@ public class AppProfiler { if (DEBUG_SWITCH || DEBUG_OOM_ADJ) { Slog.v(TAG_OOM_ADJ, msg + app.processName + " to " + level); } mService.mOomAdjuster.mCachedAppOptimizer.unfreezeTemporarily(app, mService.getCachedAppOptimizer().unfreezeTemporarily(app, CachedAppOptimizer.UNFREEZE_REASON_TRIM_MEMORY); thread.scheduleTrimMemory(level); } catch (RemoteException e) { Loading