Check if RssAnon and swap were read

Keep memory snapshots even if anon RSS and swap are both 0 as long as
the values were read correctly. These should happen rarely and statsd
can be configured to ignore atoms with zeros.

Bug: 145755384
Test: atest UidAtomTests#testProcessMemorySnapshot
Change-Id: I0ab13be008c48113f80269af4f815d807096b938
This commit is contained in:
Rafal Slawik
2020-04-15 16:07:00 +01:00
parent a2807f2859
commit 8ac4003858

View File

@@ -41,10 +41,11 @@ public final class ProcfsMemoryUtil {
public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) {
long[] output = new long[STATUS_KEYS.length];
output[0] = -1;
output[3] = -1;
output[4] = -1;
Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output);
if (output[0] == -1 || (output[3] == 0 && output[4] == 0)) {
// Could not open file or anon rss / swap are 0 indicating the process is in a zombie
// state.
if (output[0] == -1 || output[3] == -1 || output[4] == -1) {
// Could not open or parse file.
return null;
}
final MemorySnapshot snapshot = new MemorySnapshot();