Loading core/java/android/app/ActivityManagerInternal.java +0 −7 Original line number Diff line number Diff line Loading @@ -160,13 +160,6 @@ public abstract class ActivityManagerInternal { */ public abstract List<ProcessMemoryState> getMemoryStateForProcesses(); /** * Returns a list that contains the memory stats for monitored native processes. * * The list of the monitored processes is defined in MemoryStatUtil class. */ public abstract List<ProcessMemoryState> getMemoryStateForNativeProcesses(); /** * Checks to see if the calling pid is allowed to handle the user. Returns adjusted user id as * needed. Loading services/core/java/com/android/server/am/ActivityManagerService.java +0 −27 Original line number Diff line number Diff line Loading @@ -68,9 +68,7 @@ import static android.os.Process.THREAD_GROUP_DEFAULT; import static android.os.Process.THREAD_GROUP_RESTRICTED; import static android.os.Process.THREAD_GROUP_TOP_APP; import static android.os.Process.THREAD_PRIORITY_FOREGROUND; import static android.os.Process.getPidsForCommands; import static android.os.Process.getTotalMemory; import static android.os.Process.getUidForPid; import static android.os.Process.isThreadInProcess; import static android.os.Process.killProcess; import static android.os.Process.killProcessQuiet; Loading Loading @@ -127,11 +125,8 @@ import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_SERVICE; import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_UID_OBSERVERS; import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.am.MemoryStatUtil.MEMORY_STAT_INTERESTING_NATIVE_PROCESSES; import static com.android.server.am.MemoryStatUtil.hasMemcg; import static com.android.server.am.MemoryStatUtil.readCmdlineFromProcfs; import static com.android.server.am.MemoryStatUtil.readMemoryStatFromFilesystem; import static com.android.server.am.MemoryStatUtil.readMemoryStatFromProcfs; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_CLEANUP; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_CONFIGURATION; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_SWITCH; Loading Loading @@ -18766,28 +18761,6 @@ public class ActivityManagerService extends IActivityManager.Stub return processMemoryStates; } @Override public List<ProcessMemoryState> getMemoryStateForNativeProcesses() { List<ProcessMemoryState> processMemoryStates = new ArrayList<>(); int[] pids = getPidsForCommands(MEMORY_STAT_INTERESTING_NATIVE_PROCESSES); for (int i = 0; i < pids.length; i++) { int pid = pids[i]; MemoryStat memoryStat = readMemoryStatFromProcfs(pid); if (memoryStat == null) { continue; } int uid = getUidForPid(pid); String processName = readCmdlineFromProcfs(pid); int oomScore = -1; // Unused, not included in the NativeProcessMemoryState atom. ProcessMemoryState processMemoryState = new ProcessMemoryState(uid, processName, oomScore, memoryStat.pgfault, memoryStat.pgmajfault, memoryStat.rssInBytes, memoryStat.cacheInBytes, memoryStat.swapInBytes, memoryStat.rssHighWatermarkInBytes, memoryStat.startTimeNanos); processMemoryStates.add(processMemoryState); } return processMemoryStates; } @Override public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, int allowMode, String name, String callerPackage) { services/core/java/com/android/server/am/MemoryStatUtil.java +4 −4 Original line number Diff line number Diff line Loading @@ -16,9 +16,9 @@ package com.android.server.am; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_METRICS; import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_METRICS; import android.annotation.Nullable; import android.os.FileUtils; Loading @@ -45,7 +45,7 @@ public final class MemoryStatUtil { * <p>Processes are matched by their cmdline in procfs. Example: cat /proc/pid/cmdline returns * /system/bin/statsd for the stats daemon. */ static final String[] MEMORY_STAT_INTERESTING_NATIVE_PROCESSES = new String[]{ public static final String[] MEMORY_STAT_INTERESTING_NATIVE_PROCESSES = new String[]{ "/system/bin/statsd", // Stats daemon. "/system/bin/surfaceflinger", "/system/bin/apexd", // APEX daemon. Loading Loading @@ -146,7 +146,7 @@ public final class MemoryStatUtil { * Returns null if file is not found in procfs or if file has unrecognized contents. */ @Nullable static MemoryStat readMemoryStatFromProcfs(int pid) { public static MemoryStat readMemoryStatFromProcfs(int pid) { final String statPath = String.format(Locale.US, PROC_STAT_FILE_FMT, pid); MemoryStat stat = parseMemoryStatFromProcfs(readFileContents(statPath)); if (stat == null) { Loading @@ -163,7 +163,7 @@ public final class MemoryStatUtil { * Returns content of /proc/pid/cmdline (e.g. /system/bin/statsd) or an empty string * if the file is not available. */ static String readCmdlineFromProcfs(int pid) { public static String readCmdlineFromProcfs(int pid) { String path = String.format(Locale.US, PROC_CMDLINE_FILE_FMT, pid); String cmdline = readFileContents(path); return cmdline != null ? cmdline : ""; Loading services/core/java/com/android/server/stats/StatsCompanionService.java +23 −10 Original line number Diff line number Diff line Loading @@ -15,7 +15,13 @@ */ package com.android.server.stats; import static android.os.Process.getPidsForCommands; import static android.os.Process.getUidForPid; import static com.android.internal.util.Preconditions.checkNotNull; import static com.android.server.am.MemoryStatUtil.MEMORY_STAT_INTERESTING_NATIVE_PROCESSES; import static com.android.server.am.MemoryStatUtil.readCmdlineFromProcfs; import static com.android.server.am.MemoryStatUtil.readMemoryStatFromProcfs; import android.annotation.Nullable; import android.app.ActivityManagerInternal; Loading Loading @@ -96,6 +102,7 @@ import com.android.server.BinderCallsStatsService; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.SystemServiceManager; import com.android.server.am.MemoryStatUtil.MemoryStat; import com.android.server.storage.DiskStatsFileLogger; import com.android.server.storage.DiskStatsLoggingService; Loading Loading @@ -1012,17 +1019,23 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { private void pullNativeProcessMemoryState( int tagId, long elapsedNanos, long wallClockNanos, List<StatsLogEventWrapper> pulledData) { List<ProcessMemoryState> processMemoryStates = LocalServices.getService( ActivityManagerInternal.class).getMemoryStateForNativeProcesses(); for (ProcessMemoryState processMemoryState : processMemoryStates) { int[] pids = getPidsForCommands(MEMORY_STAT_INTERESTING_NATIVE_PROCESSES); for (int i = 0; i < pids.length; i++) { int pid = pids[i]; MemoryStat memoryStat = readMemoryStatFromProcfs(pid); if (memoryStat == null) { continue; } int uid = getUidForPid(pid); String processName = readCmdlineFromProcfs(pid); StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos); e.writeInt(processMemoryState.uid); e.writeString(processMemoryState.processName); e.writeLong(processMemoryState.pgfault); e.writeLong(processMemoryState.pgmajfault); e.writeLong(processMemoryState.rssInBytes); e.writeLong(processMemoryState.rssHighWatermarkInBytes); e.writeLong(processMemoryState.startTimeNanos); e.writeInt(uid); e.writeString(processName); e.writeLong(memoryStat.pgfault); e.writeLong(memoryStat.pgmajfault); e.writeLong(memoryStat.rssInBytes); e.writeLong(memoryStat.rssHighWatermarkInBytes); e.writeLong(memoryStat.startTimeNanos); pulledData.add(e); } } Loading Loading
core/java/android/app/ActivityManagerInternal.java +0 −7 Original line number Diff line number Diff line Loading @@ -160,13 +160,6 @@ public abstract class ActivityManagerInternal { */ public abstract List<ProcessMemoryState> getMemoryStateForProcesses(); /** * Returns a list that contains the memory stats for monitored native processes. * * The list of the monitored processes is defined in MemoryStatUtil class. */ public abstract List<ProcessMemoryState> getMemoryStateForNativeProcesses(); /** * Checks to see if the calling pid is allowed to handle the user. Returns adjusted user id as * needed. Loading
services/core/java/com/android/server/am/ActivityManagerService.java +0 −27 Original line number Diff line number Diff line Loading @@ -68,9 +68,7 @@ import static android.os.Process.THREAD_GROUP_DEFAULT; import static android.os.Process.THREAD_GROUP_RESTRICTED; import static android.os.Process.THREAD_GROUP_TOP_APP; import static android.os.Process.THREAD_PRIORITY_FOREGROUND; import static android.os.Process.getPidsForCommands; import static android.os.Process.getTotalMemory; import static android.os.Process.getUidForPid; import static android.os.Process.isThreadInProcess; import static android.os.Process.killProcess; import static android.os.Process.killProcessQuiet; Loading Loading @@ -127,11 +125,8 @@ import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_SERVICE; import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_UID_OBSERVERS; import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.am.MemoryStatUtil.MEMORY_STAT_INTERESTING_NATIVE_PROCESSES; import static com.android.server.am.MemoryStatUtil.hasMemcg; import static com.android.server.am.MemoryStatUtil.readCmdlineFromProcfs; import static com.android.server.am.MemoryStatUtil.readMemoryStatFromFilesystem; import static com.android.server.am.MemoryStatUtil.readMemoryStatFromProcfs; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_CLEANUP; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_CONFIGURATION; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_SWITCH; Loading Loading @@ -18766,28 +18761,6 @@ public class ActivityManagerService extends IActivityManager.Stub return processMemoryStates; } @Override public List<ProcessMemoryState> getMemoryStateForNativeProcesses() { List<ProcessMemoryState> processMemoryStates = new ArrayList<>(); int[] pids = getPidsForCommands(MEMORY_STAT_INTERESTING_NATIVE_PROCESSES); for (int i = 0; i < pids.length; i++) { int pid = pids[i]; MemoryStat memoryStat = readMemoryStatFromProcfs(pid); if (memoryStat == null) { continue; } int uid = getUidForPid(pid); String processName = readCmdlineFromProcfs(pid); int oomScore = -1; // Unused, not included in the NativeProcessMemoryState atom. ProcessMemoryState processMemoryState = new ProcessMemoryState(uid, processName, oomScore, memoryStat.pgfault, memoryStat.pgmajfault, memoryStat.rssInBytes, memoryStat.cacheInBytes, memoryStat.swapInBytes, memoryStat.rssHighWatermarkInBytes, memoryStat.startTimeNanos); processMemoryStates.add(processMemoryState); } return processMemoryStates; } @Override public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, int allowMode, String name, String callerPackage) {
services/core/java/com/android/server/am/MemoryStatUtil.java +4 −4 Original line number Diff line number Diff line Loading @@ -16,9 +16,9 @@ package com.android.server.am; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_METRICS; import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_METRICS; import android.annotation.Nullable; import android.os.FileUtils; Loading @@ -45,7 +45,7 @@ public final class MemoryStatUtil { * <p>Processes are matched by their cmdline in procfs. Example: cat /proc/pid/cmdline returns * /system/bin/statsd for the stats daemon. */ static final String[] MEMORY_STAT_INTERESTING_NATIVE_PROCESSES = new String[]{ public static final String[] MEMORY_STAT_INTERESTING_NATIVE_PROCESSES = new String[]{ "/system/bin/statsd", // Stats daemon. "/system/bin/surfaceflinger", "/system/bin/apexd", // APEX daemon. Loading Loading @@ -146,7 +146,7 @@ public final class MemoryStatUtil { * Returns null if file is not found in procfs or if file has unrecognized contents. */ @Nullable static MemoryStat readMemoryStatFromProcfs(int pid) { public static MemoryStat readMemoryStatFromProcfs(int pid) { final String statPath = String.format(Locale.US, PROC_STAT_FILE_FMT, pid); MemoryStat stat = parseMemoryStatFromProcfs(readFileContents(statPath)); if (stat == null) { Loading @@ -163,7 +163,7 @@ public final class MemoryStatUtil { * Returns content of /proc/pid/cmdline (e.g. /system/bin/statsd) or an empty string * if the file is not available. */ static String readCmdlineFromProcfs(int pid) { public static String readCmdlineFromProcfs(int pid) { String path = String.format(Locale.US, PROC_CMDLINE_FILE_FMT, pid); String cmdline = readFileContents(path); return cmdline != null ? cmdline : ""; Loading
services/core/java/com/android/server/stats/StatsCompanionService.java +23 −10 Original line number Diff line number Diff line Loading @@ -15,7 +15,13 @@ */ package com.android.server.stats; import static android.os.Process.getPidsForCommands; import static android.os.Process.getUidForPid; import static com.android.internal.util.Preconditions.checkNotNull; import static com.android.server.am.MemoryStatUtil.MEMORY_STAT_INTERESTING_NATIVE_PROCESSES; import static com.android.server.am.MemoryStatUtil.readCmdlineFromProcfs; import static com.android.server.am.MemoryStatUtil.readMemoryStatFromProcfs; import android.annotation.Nullable; import android.app.ActivityManagerInternal; Loading Loading @@ -96,6 +102,7 @@ import com.android.server.BinderCallsStatsService; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.SystemServiceManager; import com.android.server.am.MemoryStatUtil.MemoryStat; import com.android.server.storage.DiskStatsFileLogger; import com.android.server.storage.DiskStatsLoggingService; Loading Loading @@ -1012,17 +1019,23 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { private void pullNativeProcessMemoryState( int tagId, long elapsedNanos, long wallClockNanos, List<StatsLogEventWrapper> pulledData) { List<ProcessMemoryState> processMemoryStates = LocalServices.getService( ActivityManagerInternal.class).getMemoryStateForNativeProcesses(); for (ProcessMemoryState processMemoryState : processMemoryStates) { int[] pids = getPidsForCommands(MEMORY_STAT_INTERESTING_NATIVE_PROCESSES); for (int i = 0; i < pids.length; i++) { int pid = pids[i]; MemoryStat memoryStat = readMemoryStatFromProcfs(pid); if (memoryStat == null) { continue; } int uid = getUidForPid(pid); String processName = readCmdlineFromProcfs(pid); StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos); e.writeInt(processMemoryState.uid); e.writeString(processMemoryState.processName); e.writeLong(processMemoryState.pgfault); e.writeLong(processMemoryState.pgmajfault); e.writeLong(processMemoryState.rssInBytes); e.writeLong(processMemoryState.rssHighWatermarkInBytes); e.writeLong(processMemoryState.startTimeNanos); e.writeInt(uid); e.writeString(processName); e.writeLong(memoryStat.pgfault); e.writeLong(memoryStat.pgmajfault); e.writeLong(memoryStat.rssInBytes); e.writeLong(memoryStat.rssHighWatermarkInBytes); e.writeLong(memoryStat.startTimeNanos); pulledData.add(e); } } Loading