Add shmem through
Test: statsd_testdrive Bug: 267739275 Change-Id: I08fa1330da2677005a78f947e25f7ac785f03c63
This commit is contained in:
@@ -28,7 +28,8 @@ public final class ProcfsMemoryUtil {
|
||||
"VmHWM:",
|
||||
"VmRSS:",
|
||||
"RssAnon:",
|
||||
"VmSwap:"
|
||||
"RssShmem:",
|
||||
"VmSwap:",
|
||||
};
|
||||
private static final String[] VMSTAT_KEYS = new String[] {
|
||||
"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,
|
||||
* 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
|
||||
public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) {
|
||||
@@ -46,8 +47,9 @@ public final class ProcfsMemoryUtil {
|
||||
output[0] = -1;
|
||||
output[3] = -1;
|
||||
output[4] = -1;
|
||||
output[5] = -1;
|
||||
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.
|
||||
return null;
|
||||
}
|
||||
@@ -56,7 +58,8 @@ public final class ProcfsMemoryUtil {
|
||||
snapshot.rssHighWaterMarkInKilobytes = (int) output[1];
|
||||
snapshot.rssInKilobytes = (int) output[2];
|
||||
snapshot.anonRssInKilobytes = (int) output[3];
|
||||
snapshot.swapInKilobytes = (int) output[4];
|
||||
snapshot.rssShmemKilobytes = (int) output[4];
|
||||
snapshot.swapInKilobytes = (int) output[5];
|
||||
return snapshot;
|
||||
}
|
||||
|
||||
@@ -101,6 +104,7 @@ public final class ProcfsMemoryUtil {
|
||||
public int rssInKilobytes;
|
||||
public int anonRssInKilobytes;
|
||||
public int swapInKilobytes;
|
||||
public int rssShmemKilobytes;
|
||||
}
|
||||
|
||||
/** Reads and parses selected entries of /proc/vmstat. */
|
||||
|
||||
@@ -2290,7 +2290,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
managedProcess.processName, managedProcess.pid, managedProcess.oomScore,
|
||||
snapshot.rssInKilobytes, 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
|
||||
// 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.*/,
|
||||
snapshot.rssInKilobytes, 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user