Loading core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -6587,4 +6587,7 @@ vibrations for the customized haptic feedback IDs, and continue to use the system defaults for the non-customized ones. --> <string name="config_hapticFeedbackCustomizationFile" /> <!-- Whether or not ActivityManager PSS profiling is disabled. --> <bool name="config_am_disablePssProfiling">false</bool> </resources> core/res/res/values/symbols.xml +3 −0 Original line number Diff line number Diff line Loading @@ -5185,4 +5185,7 @@ <java-symbol type="bool" name="config_enable_a11y_magnification_single_panning" /> <java-symbol type="string" name="config_hapticFeedbackCustomizationFile" /> <!-- For ActivityManager PSS profiling configurability --> <java-symbol type="bool" name="config_am_disablePssProfiling" /> </resources> services/core/java/com/android/server/am/ActivityManagerConstants.java +27 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.util.ArraySet; import android.util.KeyValueListParser; import android.util.Slog; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import dalvik.annotation.optimization.NeverCompile; Loading Loading @@ -1065,6 +1066,16 @@ final class ActivityManagerConstants extends ContentObserver { /** @see #KEY_ENABLE_NEW_OOMADJ */ public boolean ENABLE_NEW_OOMADJ = DEFAULT_ENABLE_NEW_OOM_ADJ; /** * Indicates whether PSS profiling in AppProfiler is disabled or not. */ static final String KEY_DISABLE_APP_PROFILER_PSS_PROFILING = "disable_app_profiler_pss_profiling"; private final boolean mDefaultDisableAppProfilerPssProfiling; public boolean APP_PROFILER_PSS_PROFILING_DISABLED; private final OnPropertiesChangedListener mOnDeviceConfigChangedListener = new OnPropertiesChangedListener() { @Override Loading Loading @@ -1240,6 +1251,9 @@ final class ActivityManagerConstants extends ContentObserver { case KEY_USE_MODERN_TRIM: updateUseModernTrim(); break; case KEY_DISABLE_APP_PROFILER_PSS_PROFILING: updateDisableAppProfilerPssProfiling(); break; default: updateFGSPermissionEnforcementFlagsIfNecessary(name); break; Loading Loading @@ -1321,8 +1335,10 @@ final class ActivityManagerConstants extends ContentObserver { CUR_TRIM_EMPTY_PROCESSES = rawMaxEmptyProcesses / 2; CUR_TRIM_CACHED_PROCESSES = (Integer.min(CUR_MAX_CACHED_PROCESSES, MAX_CACHED_PROCESSES) - rawMaxEmptyProcesses) / 3; loadNativeBootDeviceConfigConstants(); mDefaultDisableAppProfilerPssProfiling = context.getResources().getBoolean( R.bool.config_am_disablePssProfiling); APP_PROFILER_PSS_PROFILING_DISABLED = mDefaultDisableAppProfilerPssProfiling; } public void start(ContentResolver resolver) { Loading Loading @@ -2029,6 +2045,12 @@ final class ActivityManagerConstants extends ContentObserver { .updatePermissionEnforcementFlagIfNecessary(name); } private void updateDisableAppProfilerPssProfiling() { APP_PROFILER_PSS_PROFILING_DISABLED = DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, KEY_DISABLE_APP_PROFILER_PSS_PROFILING, mDefaultDisableAppProfilerPssProfiling); } @NeverCompile // Avoid size overhead of debugging code. void dump(PrintWriter pw) { pw.println("ACTIVITY MANAGER SETTINGS (dumpsys activity settings) " Loading Loading @@ -2217,6 +2239,9 @@ final class ActivityManagerConstants extends ContentObserver { pw.print(" "); pw.print(KEY_ENABLE_NEW_OOMADJ); pw.print("="); pw.println(ENABLE_NEW_OOMADJ); pw.print(" "); pw.print(KEY_DISABLE_APP_PROFILER_PSS_PROFILING); pw.print("="); pw.println(APP_PROFILER_PSS_PROFILING_DISABLED); pw.println(); if (mOverrideMaxCachedProcesses >= 0) { pw.print(" mOverrideMaxCachedProcesses="); pw.println(mOverrideMaxCachedProcesses); Loading services/core/java/com/android/server/am/AppProfiler.java +13 −8 Original line number Diff line number Diff line Loading @@ -633,6 +633,8 @@ public class AppProfiler { return st.vsize > 0 && st.uid < FIRST_APPLICATION_UID; }); } if (!mService.mConstants.APP_PROFILER_PSS_PROFILING_DISABLED) { final int numOfStats = stats.size(); for (int j = 0; j < numOfStats; j++) { synchronized (mService.mPidsSelfLocked) { Loading @@ -643,6 +645,8 @@ public class AppProfiler { } nativeTotalPss += Debug.getPss(stats.get(j).pid, null, null); } } memInfo.readMemInfo(); synchronized (mService.mProcessStats.mLock) { if (DEBUG_PSS) { Loading Loading @@ -706,7 +710,8 @@ public class AppProfiler { final boolean skipPSSCollection = (profile.mApp.mOptRecord != null && profile.mApp.mOptRecord.skipPSSCollectionBecauseFrozen()) || mService.isCameraActiveForUid(profile.mApp.uid); || mService.isCameraActiveForUid(profile.mApp.uid) || mService.mConstants.APP_PROFILER_PSS_PROFILING_DISABLED; long pss = skipPSSCollection ? 0 : Debug.getPss(pid, tmp, null); long endTime = SystemClock.currentThreadTimeMillis(); synchronized (mProfilerLock) { Loading Loading
core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -6587,4 +6587,7 @@ vibrations for the customized haptic feedback IDs, and continue to use the system defaults for the non-customized ones. --> <string name="config_hapticFeedbackCustomizationFile" /> <!-- Whether or not ActivityManager PSS profiling is disabled. --> <bool name="config_am_disablePssProfiling">false</bool> </resources>
core/res/res/values/symbols.xml +3 −0 Original line number Diff line number Diff line Loading @@ -5185,4 +5185,7 @@ <java-symbol type="bool" name="config_enable_a11y_magnification_single_panning" /> <java-symbol type="string" name="config_hapticFeedbackCustomizationFile" /> <!-- For ActivityManager PSS profiling configurability --> <java-symbol type="bool" name="config_am_disablePssProfiling" /> </resources>
services/core/java/com/android/server/am/ActivityManagerConstants.java +27 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.util.ArraySet; import android.util.KeyValueListParser; import android.util.Slog; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import dalvik.annotation.optimization.NeverCompile; Loading Loading @@ -1065,6 +1066,16 @@ final class ActivityManagerConstants extends ContentObserver { /** @see #KEY_ENABLE_NEW_OOMADJ */ public boolean ENABLE_NEW_OOMADJ = DEFAULT_ENABLE_NEW_OOM_ADJ; /** * Indicates whether PSS profiling in AppProfiler is disabled or not. */ static final String KEY_DISABLE_APP_PROFILER_PSS_PROFILING = "disable_app_profiler_pss_profiling"; private final boolean mDefaultDisableAppProfilerPssProfiling; public boolean APP_PROFILER_PSS_PROFILING_DISABLED; private final OnPropertiesChangedListener mOnDeviceConfigChangedListener = new OnPropertiesChangedListener() { @Override Loading Loading @@ -1240,6 +1251,9 @@ final class ActivityManagerConstants extends ContentObserver { case KEY_USE_MODERN_TRIM: updateUseModernTrim(); break; case KEY_DISABLE_APP_PROFILER_PSS_PROFILING: updateDisableAppProfilerPssProfiling(); break; default: updateFGSPermissionEnforcementFlagsIfNecessary(name); break; Loading Loading @@ -1321,8 +1335,10 @@ final class ActivityManagerConstants extends ContentObserver { CUR_TRIM_EMPTY_PROCESSES = rawMaxEmptyProcesses / 2; CUR_TRIM_CACHED_PROCESSES = (Integer.min(CUR_MAX_CACHED_PROCESSES, MAX_CACHED_PROCESSES) - rawMaxEmptyProcesses) / 3; loadNativeBootDeviceConfigConstants(); mDefaultDisableAppProfilerPssProfiling = context.getResources().getBoolean( R.bool.config_am_disablePssProfiling); APP_PROFILER_PSS_PROFILING_DISABLED = mDefaultDisableAppProfilerPssProfiling; } public void start(ContentResolver resolver) { Loading Loading @@ -2029,6 +2045,12 @@ final class ActivityManagerConstants extends ContentObserver { .updatePermissionEnforcementFlagIfNecessary(name); } private void updateDisableAppProfilerPssProfiling() { APP_PROFILER_PSS_PROFILING_DISABLED = DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, KEY_DISABLE_APP_PROFILER_PSS_PROFILING, mDefaultDisableAppProfilerPssProfiling); } @NeverCompile // Avoid size overhead of debugging code. void dump(PrintWriter pw) { pw.println("ACTIVITY MANAGER SETTINGS (dumpsys activity settings) " Loading Loading @@ -2217,6 +2239,9 @@ final class ActivityManagerConstants extends ContentObserver { pw.print(" "); pw.print(KEY_ENABLE_NEW_OOMADJ); pw.print("="); pw.println(ENABLE_NEW_OOMADJ); pw.print(" "); pw.print(KEY_DISABLE_APP_PROFILER_PSS_PROFILING); pw.print("="); pw.println(APP_PROFILER_PSS_PROFILING_DISABLED); pw.println(); if (mOverrideMaxCachedProcesses >= 0) { pw.print(" mOverrideMaxCachedProcesses="); pw.println(mOverrideMaxCachedProcesses); Loading
services/core/java/com/android/server/am/AppProfiler.java +13 −8 Original line number Diff line number Diff line Loading @@ -633,6 +633,8 @@ public class AppProfiler { return st.vsize > 0 && st.uid < FIRST_APPLICATION_UID; }); } if (!mService.mConstants.APP_PROFILER_PSS_PROFILING_DISABLED) { final int numOfStats = stats.size(); for (int j = 0; j < numOfStats; j++) { synchronized (mService.mPidsSelfLocked) { Loading @@ -643,6 +645,8 @@ public class AppProfiler { } nativeTotalPss += Debug.getPss(stats.get(j).pid, null, null); } } memInfo.readMemInfo(); synchronized (mService.mProcessStats.mLock) { if (DEBUG_PSS) { Loading Loading @@ -706,7 +710,8 @@ public class AppProfiler { final boolean skipPSSCollection = (profile.mApp.mOptRecord != null && profile.mApp.mOptRecord.skipPSSCollectionBecauseFrozen()) || mService.isCameraActiveForUid(profile.mApp.uid); || mService.isCameraActiveForUid(profile.mApp.uid) || mService.mConstants.APP_PROFILER_PSS_PROFILING_DISABLED; long pss = skipPSSCollection ? 0 : Debug.getPss(pid, tmp, null); long endTime = SystemClock.currentThreadTimeMillis(); synchronized (mProfilerLock) { Loading