Merge "Add shmem through" into udc-dev

This commit is contained in:
Ella Su
2023-03-29 14:11:49 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 6 deletions

View File

@@ -28,7 +28,8 @@ public final class ProcfsMemoryUtil {
"VmHWM:", "VmHWM:",
"VmRSS:", "VmRSS:",
"RssAnon:", "RssAnon:",
"VmSwap:" "RssShmem:",
"VmSwap:",
}; };
private static final String[] VMSTAT_KEYS = new String[] { private static final String[] VMSTAT_KEYS = new String[] {
"oom_kill" "oom_kill"
@@ -38,7 +39,7 @@ public final class ProcfsMemoryUtil {
/** /**
* Reads memory stats of a process from procfs. Returns values of the VmHWM, VmRss, AnonRSS, * Reads memory stats of a process from procfs. Returns values of the VmHWM, VmRss, AnonRSS,
* VmSwap fields in /proc/pid/status in kilobytes or null if not available. * VmSwap, RssShmem fields in /proc/pid/status in kilobytes or null if not available.
*/ */
@Nullable @Nullable
public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) { public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) {
@@ -46,8 +47,9 @@ public final class ProcfsMemoryUtil {
output[0] = -1; output[0] = -1;
output[3] = -1; output[3] = -1;
output[4] = -1; output[4] = -1;
output[5] = -1;
Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output); Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output);
if (output[0] == -1 || output[3] == -1 || output[4] == -1) { if (output[0] == -1 || output[3] == -1 || output[4] == -1 || output[5] == -1) {
// Could not open or parse file. // Could not open or parse file.
return null; return null;
} }
@@ -56,7 +58,8 @@ public final class ProcfsMemoryUtil {
snapshot.rssHighWaterMarkInKilobytes = (int) output[1]; snapshot.rssHighWaterMarkInKilobytes = (int) output[1];
snapshot.rssInKilobytes = (int) output[2]; snapshot.rssInKilobytes = (int) output[2];
snapshot.anonRssInKilobytes = (int) output[3]; snapshot.anonRssInKilobytes = (int) output[3];
snapshot.swapInKilobytes = (int) output[4]; snapshot.rssShmemKilobytes = (int) output[4];
snapshot.swapInKilobytes = (int) output[5];
return snapshot; return snapshot;
} }
@@ -101,6 +104,7 @@ public final class ProcfsMemoryUtil {
public int rssInKilobytes; public int rssInKilobytes;
public int anonRssInKilobytes; public int anonRssInKilobytes;
public int swapInKilobytes; public int swapInKilobytes;
public int rssShmemKilobytes;
} }
/** Reads and parses selected entries of /proc/vmstat. */ /** Reads and parses selected entries of /proc/vmstat. */

View File

@@ -2290,7 +2290,8 @@ public class StatsPullAtomService extends SystemService {
managedProcess.processName, managedProcess.pid, managedProcess.oomScore, managedProcess.processName, managedProcess.pid, managedProcess.oomScore,
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes, snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes, snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
gpuMemPerPid.get(managedProcess.pid), managedProcess.hasForegroundServices)); gpuMemPerPid.get(managedProcess.pid), managedProcess.hasForegroundServices,
snapshot.rssShmemKilobytes));
} }
// Complement the data with native system processes. Given these measurements can be taken // Complement the data with native system processes. Given these measurements can be taken
// in response to LMKs happening, we want to first collect the managed app stats (to // in response to LMKs happening, we want to first collect the managed app stats (to
@@ -2309,7 +2310,8 @@ public class StatsPullAtomService extends SystemService {
-1001 /*Placeholder for native processes, OOM_SCORE_ADJ_MIN - 1.*/, -1001 /*Placeholder for native processes, OOM_SCORE_ADJ_MIN - 1.*/,
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes, snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes, snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
gpuMemPerPid.get(pid), false /* has_foreground_services */)); gpuMemPerPid.get(pid), false /* has_foreground_services */,
snapshot.rssShmemKilobytes));
} }
return StatsManager.PULL_SUCCESS; return StatsManager.PULL_SUCCESS;
} }